@misiki/gocommerce-connector 0.8.0 → 0.9.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.
@@ -1 +1 @@
1
- export { a as AddressService, c as Approval, e as AuthService, f as AutocompleteService, B as B2bPlaced, g as B2bRole, h as B2bService, i as BannerService, j as BaseService, k as BlogService, m as CartService, n as CatalogService, p as CategoryService, q as ChatService, t as CheckoutService, w as CollectionService, x as Company, y as CompanyOrder, z as ContactService, D as CountryService, E as CouponService, G as Credit, H as CurrencyService, J as DealService, K as DemoRequestService, L as EngineRequest, M as EnquiryService, P as FaqService, Q as FeedbackService, S as GalleryService, T as HomeLayout, U as HomeLayoutSection, V as HomeService, X as InitService, Y as Invitation, Z as LayoutCollection, _ as LayoutService, $ as Lead, a1 as MeilisearchService, a2 as Member, a5 as MenuService, a8 as NewsletterService, ac as OrderService, ad as PageService, af as PaymentMethodService, ah as PluginService, ah as PluginsService, ai as PopularSearchService, aj as PopularityService, am as ProductService, an as ProfileService, ao as Quote, ap as REDIRECT_GATEWAYS, aq as ReelsService, ar as RegionService, as as RejectedLine, av as ReviewService, ay as SearchService, az as SettingService, az as SettingsService, aB as StateService, aD as StoreService, aF as StorefrontMenu, aI as ThemeSettings, aJ as ThemeSettingsResult, aK as UploadService, aL as UserService, aO as VariantService, aP as VarniCustomDesignService, aQ as VarniCustomProductService, aS as VendorService, aT as WarrantyService, aW as WishlistService, aX as addressService, aY as authService, aZ as autocompleteService, a_ as b2bService, a$ as bannerService, b0 as blogService, b1 as cartService, b2 as categoryService, b3 as chatService, b4 as checkoutService, b5 as collectionService, b6 as contactService, b7 as countryService, b8 as couponService, ba as currencyService, bb as dealService, bc as demoRequestService, be as emptyPage, bf as enquiryService, bg as faqService, bh as feedbackService, bl as galleryService, bm as homeService, bn as initService, bo as layoutService, bp as mediaUrl, bq as meilisearchService, br as menuService, bt as newsletterService, bu as orderService, bv as ownDomain, bw as pageService, bx as paymentMethodService, by as pluginService, bz as pluginsService, bA as popularSearchService, bB as popularityService, bE as productService, bF as profileService, bG as qs, bH as reelsService, bI as regionService, bJ as reviewService, bK as searchService, bL as setRequestHost, bM as settingService, bN as settingsService, bO as stateService, bP as staticStore, bQ as storeForHost, bR as storeService, c0 as toPage, c6 as uploadService, c7 as userService, c8 as variantService, c9 as varniCustomDesignService, ca as varniCustomProductService, cb as vendorService, cc as warrantyService, cd as wishlistService } from '../index-inrM-B0Z.cjs';
1
+ export { a as AddressService, c as Approval, e as AuthService, f as AutocompleteService, B as B2bPlaced, g as B2bRole, h as B2bService, i as BannerService, j as BaseService, k as BlogService, m as CartService, n as CatalogService, p as CategoryService, q as ChatService, t as CheckoutService, w as CollectionService, x as Company, y as CompanyOrder, z as ContactService, D as CountryService, E as CouponService, G as Credit, H as CurrencyService, J as DealService, K as DemoRequestService, L as EngineRequest, M as EnquiryService, P as FaqService, Q as FeedbackService, S as GalleryService, T as HomeLayout, U as HomeLayoutSection, V as HomeService, X as InitService, Y as Invitation, Z as LayoutCollection, _ as LayoutPage, $ as LayoutService, a0 as Lead, a2 as MeilisearchService, a3 as Member, a6 as MenuService, a9 as NewsletterService, ad as OrderService, ae as PageLayout, af as PageService, ah as PaymentMethodService, aj as PluginService, aj as PluginsService, ak as PopularSearchService, al as PopularityService, ao as ProductService, ap as ProfileService, aq as Quote, ar as REDIRECT_GATEWAYS, as as ReelsService, at as RegionService, au as RejectedLine, ax as ReviewService, aA as SearchService, aB as SettingService, aB as SettingsService, aD as StateService, aF as StoreService, aH as StorefrontMenu, aK as ThemeSettings, aL as ThemeSettingsResult, aM as UploadService, aN as UserService, aQ as VariantService, aR as VarniCustomDesignService, aS as VarniCustomProductService, aU as VendorService, aV as WarrantyService, aY as WishlistService, aZ as addressService, a_ as authService, a$ as autocompleteService, b0 as b2bService, b1 as bannerService, b2 as blogService, b3 as cartService, b4 as categoryService, b5 as chatService, b6 as checkoutService, b7 as collectionService, b8 as contactService, b9 as countryService, ba as couponService, bc as currencyService, bd as dealService, be as demoRequestService, bg as emptyPage, bh as enquiryService, bi as faqService, bj as feedbackService, bn as galleryService, bo as homeService, bp as initService, bq as layoutService, br as mediaUrl, bs as meilisearchService, bt as menuService, bv as newsletterService, bw as orderService, bx as ownDomain, by as pageService, bz as paymentMethodService, bA as pluginService, bB as pluginsService, bC as popularSearchService, bD as popularityService, bG as productService, bH as profileService, bI as qs, bJ as reelsService, bK as regionService, bL as reviewService, bM as searchService, bN as setRequestHost, bO as settingService, bP as settingsService, bQ as stateService, bR as staticStore, bS as storeForHost, bT as storeService, c2 as toPage, c8 as uploadService, c9 as userService, ca as variantService, cb as varniCustomDesignService, cc as varniCustomProductService, cd as vendorService, ce as warrantyService, cf as wishlistService } from '../index-DSvV8FbK.cjs';
@@ -1 +1 @@
1
- export { a as AddressService, c as Approval, e as AuthService, f as AutocompleteService, B as B2bPlaced, g as B2bRole, h as B2bService, i as BannerService, j as BaseService, k as BlogService, m as CartService, n as CatalogService, p as CategoryService, q as ChatService, t as CheckoutService, w as CollectionService, x as Company, y as CompanyOrder, z as ContactService, D as CountryService, E as CouponService, G as Credit, H as CurrencyService, J as DealService, K as DemoRequestService, L as EngineRequest, M as EnquiryService, P as FaqService, Q as FeedbackService, S as GalleryService, T as HomeLayout, U as HomeLayoutSection, V as HomeService, X as InitService, Y as Invitation, Z as LayoutCollection, _ as LayoutService, $ as Lead, a1 as MeilisearchService, a2 as Member, a5 as MenuService, a8 as NewsletterService, ac as OrderService, ad as PageService, af as PaymentMethodService, ah as PluginService, ah as PluginsService, ai as PopularSearchService, aj as PopularityService, am as ProductService, an as ProfileService, ao as Quote, ap as REDIRECT_GATEWAYS, aq as ReelsService, ar as RegionService, as as RejectedLine, av as ReviewService, ay as SearchService, az as SettingService, az as SettingsService, aB as StateService, aD as StoreService, aF as StorefrontMenu, aI as ThemeSettings, aJ as ThemeSettingsResult, aK as UploadService, aL as UserService, aO as VariantService, aP as VarniCustomDesignService, aQ as VarniCustomProductService, aS as VendorService, aT as WarrantyService, aW as WishlistService, aX as addressService, aY as authService, aZ as autocompleteService, a_ as b2bService, a$ as bannerService, b0 as blogService, b1 as cartService, b2 as categoryService, b3 as chatService, b4 as checkoutService, b5 as collectionService, b6 as contactService, b7 as countryService, b8 as couponService, ba as currencyService, bb as dealService, bc as demoRequestService, be as emptyPage, bf as enquiryService, bg as faqService, bh as feedbackService, bl as galleryService, bm as homeService, bn as initService, bo as layoutService, bp as mediaUrl, bq as meilisearchService, br as menuService, bt as newsletterService, bu as orderService, bv as ownDomain, bw as pageService, bx as paymentMethodService, by as pluginService, bz as pluginsService, bA as popularSearchService, bB as popularityService, bE as productService, bF as profileService, bG as qs, bH as reelsService, bI as regionService, bJ as reviewService, bK as searchService, bL as setRequestHost, bM as settingService, bN as settingsService, bO as stateService, bP as staticStore, bQ as storeForHost, bR as storeService, c0 as toPage, c6 as uploadService, c7 as userService, c8 as variantService, c9 as varniCustomDesignService, ca as varniCustomProductService, cb as vendorService, cc as warrantyService, cd as wishlistService } from '../index-inrM-B0Z.js';
1
+ export { a as AddressService, c as Approval, e as AuthService, f as AutocompleteService, B as B2bPlaced, g as B2bRole, h as B2bService, i as BannerService, j as BaseService, k as BlogService, m as CartService, n as CatalogService, p as CategoryService, q as ChatService, t as CheckoutService, w as CollectionService, x as Company, y as CompanyOrder, z as ContactService, D as CountryService, E as CouponService, G as Credit, H as CurrencyService, J as DealService, K as DemoRequestService, L as EngineRequest, M as EnquiryService, P as FaqService, Q as FeedbackService, S as GalleryService, T as HomeLayout, U as HomeLayoutSection, V as HomeService, X as InitService, Y as Invitation, Z as LayoutCollection, _ as LayoutPage, $ as LayoutService, a0 as Lead, a2 as MeilisearchService, a3 as Member, a6 as MenuService, a9 as NewsletterService, ad as OrderService, ae as PageLayout, af as PageService, ah as PaymentMethodService, aj as PluginService, aj as PluginsService, ak as PopularSearchService, al as PopularityService, ao as ProductService, ap as ProfileService, aq as Quote, ar as REDIRECT_GATEWAYS, as as ReelsService, at as RegionService, au as RejectedLine, ax as ReviewService, aA as SearchService, aB as SettingService, aB as SettingsService, aD as StateService, aF as StoreService, aH as StorefrontMenu, aK as ThemeSettings, aL as ThemeSettingsResult, aM as UploadService, aN as UserService, aQ as VariantService, aR as VarniCustomDesignService, aS as VarniCustomProductService, aU as VendorService, aV as WarrantyService, aY as WishlistService, aZ as addressService, a_ as authService, a$ as autocompleteService, b0 as b2bService, b1 as bannerService, b2 as blogService, b3 as cartService, b4 as categoryService, b5 as chatService, b6 as checkoutService, b7 as collectionService, b8 as contactService, b9 as countryService, ba as couponService, bc as currencyService, bd as dealService, be as demoRequestService, bg as emptyPage, bh as enquiryService, bi as faqService, bj as feedbackService, bn as galleryService, bo as homeService, bp as initService, bq as layoutService, br as mediaUrl, bs as meilisearchService, bt as menuService, bv as newsletterService, bw as orderService, bx as ownDomain, by as pageService, bz as paymentMethodService, bA as pluginService, bB as pluginsService, bC as popularSearchService, bD as popularityService, bG as productService, bH as profileService, bI as qs, bJ as reelsService, bK as regionService, bL as reviewService, bM as searchService, bN as setRequestHost, bO as settingService, bP as settingsService, bQ as stateService, bR as staticStore, bS as storeForHost, bT as storeService, c2 as toPage, c8 as uploadService, c9 as userService, ca as variantService, cb as varniCustomDesignService, cc as varniCustomProductService, cd as vendorService, ce as warrantyService, cf as wishlistService } from '../index-DSvV8FbK.js';
@@ -1220,17 +1220,46 @@ var ProductService = class extends CatalogService {
1220
1220
  async listTrendingProducts({ page = 1, limit } = {}) {
1221
1221
  return this.shelf("trending", { page, limit });
1222
1222
  }
1223
- /** More from this product's category. */
1223
+ /**
1224
+ * More like this product. Given `product` (a slug or id), it is the
1225
+ * product's category first, then its collections, then the newest — never
1226
+ * the product itself. Many shops never fill in categories, and an empty
1227
+ * rail under every product page reads as a broken shop.
1228
+ *
1229
+ * Without `product`, it is the old answer: more from `categoryId`.
1230
+ */
1224
1231
  async listRelatedProducts({
1225
1232
  page = 1,
1226
1233
  categoryId,
1234
+ product,
1227
1235
  limit
1228
1236
  } = {}) {
1237
+ if (product) return this.relatedTo(String(product), limit);
1229
1238
  if (!categoryId) return this.list({ page, limit });
1230
1239
  const category = (await this.facts.categories()).find((c) => String(c.id) === String(categoryId));
1231
1240
  if (!category) return this.list({ page, limit });
1232
1241
  return this.list({ page, limit, categories: category.slug });
1233
1242
  }
1243
+ async relatedTo(slug, limit) {
1244
+ const size = Math.min(100, Math.max(1, Number(limit) || PAGE_SIZE));
1245
+ const p = await this.findProduct(slug);
1246
+ const self = String(p.id);
1247
+ const picked = /* @__PURE__ */ new Map();
1248
+ const add = (rows) => {
1249
+ for (const r of rows) {
1250
+ if (picked.size >= size) return;
1251
+ if (r.id !== self && !picked.has(r.id)) picked.set(r.id, r);
1252
+ }
1253
+ };
1254
+ if (p.category) add((await this.list({ limit: size + 1, categories: p.category.slug })).data);
1255
+ for (const c of p.collections ?? []) {
1256
+ if (picked.size >= size) break;
1257
+ add((await this.shelf(c.slug, { page: 1, limit: size + 1 })).data);
1258
+ }
1259
+ if (picked.size < size) add((await this.list({ limit: size + 1 })).data);
1260
+ const data = [...picked.values()];
1261
+ return { data, count: data.length, pageSize: size, noOfPage: 1, page: 1 };
1262
+ }
1234
1263
  async shelf(slug, { page, sort, limit }) {
1235
1264
  const size = Math.min(100, Math.max(1, Number(limit) || PAGE_SIZE));
1236
1265
  try {
@@ -2743,9 +2772,25 @@ var faqService = new FaqService();
2743
2772
  var MEDIA_KEYS = /* @__PURE__ */ new Set(["image", "mobile_image", "poster", "video_file"]);
2744
2773
  var LayoutService = class extends BaseService {
2745
2774
  async getHomeLayout({ preview } = {}) {
2775
+ return this.getPageLayout("home", { preview });
2776
+ }
2777
+ /**
2778
+ * The template every product page is drawn in: the sections around the
2779
+ * product's core (`main-product`). Null when none is published, so the
2780
+ * product page draws exactly as it did before templates existed.
2781
+ */
2782
+ async getProductLayout({ preview } = {}) {
2783
+ return this.getPageLayout("product", { preview });
2784
+ }
2785
+ /** The template every collection page is drawn in, around its grid (`main-collection`). */
2786
+ async getCollectionLayout({ preview } = {}) {
2787
+ return this.getPageLayout("collection", { preview });
2788
+ }
2789
+ /** Any arranged page by its key; null for none, as the three above. */
2790
+ async getPageLayout(page, { preview } = {}) {
2746
2791
  let layout;
2747
2792
  try {
2748
- layout = await this.data("/x/layouts/home", {
2793
+ layout = await this.data(`/x/layouts/${encodeURIComponent(page)}`, {
2749
2794
  query: { preview: preview?.trim() || void 0 }
2750
2795
  });
2751
2796
  } catch (err) {