@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.
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- export { A as Address, a as AddressService, b as AppliedDiscount, c as Approval, d as AuthResponse, e as AuthService, f as AutocompleteService, B as B2bPlaced, g as B2bRole, h as B2bService, i as BannerService, j as BaseService, k as BlogService, C as Cart, l as CartLine, m as CartService, n as CatalogService, o as Category, p as CategoryService, q as ChatService, r as CheckoutOptions, s as CheckoutResult, t as CheckoutService, u as CmsPage, v as Collection, w as CollectionService, x as Company, y as CompanyOrder, z as ContactService, D as CountryService, E as CouponService, F as Credentials, G as Credit, H as CurrencyService, I as Customer, J as DealService, K as DemoRequestService, L as EngineRequest, M as EnquiryService, N as Envelope, O as Faq, P as FaqService, Q as FeedbackService, R as Fulfillment, S as GalleryService, T as HomeLayout, U as HomeLayoutSection, V as HomeService, W as IdentityAddress, X as InitService, Y as Invitation, Z as LayoutCollection, _ as LayoutService, $ as Lead, a0 as ListMeta, a1 as MeilisearchService, a2 as Member, a3 as Menu, a4 as MenuItem, a5 as MenuService, a6 as MenuSummary, a7 as Money, a8 as NewsletterService, a9 as Offer, aa as Order, ab as OrderLine, ac as OrderService, ad as PageService, ae as PaymentIntent, af as PaymentMethodService, ag as Plugin, ah as PluginService, ah as PluginsService, ai as PopularSearchService, aj as PopularityService, ak as Product, al as ProductOption, am as ProductService, an as ProfileService, ao as Quote, ap as REDIRECT_GATEWAYS, aq as ReelsService, ar as RegionService, as as RejectedLine, at as Review, au as ReviewPage, av as ReviewService, aw as SearchDoc, ax as SearchResult, ay as SearchService, az as SettingService, az as SettingsService, aA as ShippingRate, aB as StateService, aC as StoreProfile, aD as StoreService, aE as StorefrontCategory, aF as StorefrontMenu, aG as StorefrontOrder, aH as StorefrontProduct, aI as ThemeSettings, aJ as ThemeSettingsResult, aK as UploadService, aL as UserService, aM as Variant, aN as VariantImage, aO as VariantService, aP as VarniCustomDesignService, aQ as VarniCustomProductService, aR as Vendor, aS as VendorService, aT as WarrantyService, aU as Wishlist, aV as WishlistItem, 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, b9 as currencyExponent, ba as currencyService, bb as dealService, bc as demoRequestService, bd as emptyCart, be as emptyPage, bf as enquiryService, bg as faqService, bh as feedbackService, bi as fromEngineAddress, bj as fromIdentityAddress, bk as fromSearchDoc, bl as galleryService, bm as homeService, bn as initService, bo as layoutService, bp as mediaUrl, bq as meilisearchService, br as menuService, bs as minorToMajor, 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, bC as priceOf, bD as productImages, 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, bS as toCart, bT as toCartLine, bU as toCategory, bV as toCmsPage, bW as toCollection, bX as toEngineAddress, bY as toIdentityAddress, bZ as toMajor, b_ as toMinor, b$ as toOrder, c0 as toPage, c1 as toProduct, c2 as toRating, c3 as toUser, c4 as toVariant, c5 as toVendor, 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 Address, a as AddressService, b as AppliedDiscount, c as Approval, d as AuthResponse, e as AuthService, f as AutocompleteService, B as B2bPlaced, g as B2bRole, h as B2bService, i as BannerService, j as BaseService, k as BlogService, C as Cart, l as CartLine, m as CartService, n as CatalogService, o as Category, p as CategoryService, q as ChatService, r as CheckoutOptions, s as CheckoutResult, t as CheckoutService, u as CmsPage, v as Collection, w as CollectionService, x as Company, y as CompanyOrder, z as ContactService, D as CountryService, E as CouponService, F as Credentials, G as Credit, H as CurrencyService, I as Customer, J as DealService, K as DemoRequestService, L as EngineRequest, M as EnquiryService, N as Envelope, O as Faq, P as FaqService, Q as FeedbackService, R as Fulfillment, S as GalleryService, T as HomeLayout, U as HomeLayoutSection, V as HomeService, W as IdentityAddress, X as InitService, Y as Invitation, Z as LayoutCollection, _ as LayoutPage, $ as LayoutService, a0 as Lead, a1 as ListMeta, a2 as MeilisearchService, a3 as Member, a4 as Menu, a5 as MenuItem, a6 as MenuService, a7 as MenuSummary, a8 as Money, a9 as NewsletterService, aa as Offer, ab as Order, ac as OrderLine, ad as OrderService, ae as PageLayout, af as PageService, ag as PaymentIntent, ah as PaymentMethodService, ai as Plugin, aj as PluginService, aj as PluginsService, ak as PopularSearchService, al as PopularityService, am as Product, an as ProductOption, ao as ProductService, ap as ProfileService, aq as Quote, ar as REDIRECT_GATEWAYS, as as ReelsService, at as RegionService, au as RejectedLine, av as Review, aw as ReviewPage, ax as ReviewService, ay as SearchDoc, az as SearchResult, aA as SearchService, aB as SettingService, aB as SettingsService, aC as ShippingRate, aD as StateService, aE as StoreProfile, aF as StoreService, aG as StorefrontCategory, aH as StorefrontMenu, aI as StorefrontOrder, aJ as StorefrontProduct, aK as ThemeSettings, aL as ThemeSettingsResult, aM as UploadService, aN as UserService, aO as Variant, aP as VariantImage, aQ as VariantService, aR as VarniCustomDesignService, aS as VarniCustomProductService, aT as Vendor, aU as VendorService, aV as WarrantyService, aW as Wishlist, aX as WishlistItem, 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, bb as currencyExponent, bc as currencyService, bd as dealService, be as demoRequestService, bf as emptyCart, bg as emptyPage, bh as enquiryService, bi as faqService, bj as feedbackService, bk as fromEngineAddress, bl as fromIdentityAddress, bm as fromSearchDoc, bn as galleryService, bo as homeService, bp as initService, bq as layoutService, br as mediaUrl, bs as meilisearchService, bt as menuService, bu as minorToMajor, 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, bE as priceOf, bF as productImages, 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, bU as toCart, bV as toCartLine, bW as toCategory, bX as toCmsPage, bY as toCollection, bZ as toEngineAddress, b_ as toIdentityAddress, b$ as toMajor, c0 as toMinor, c1 as toOrder, c2 as toPage, c3 as toProduct, c4 as toRating, c5 as toUser, c6 as toVariant, c7 as toVendor, 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';
2
2
 
3
3
  /**
4
4
  * The two ways a call through this connector fails.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { A as Address, a as AddressService, b as AppliedDiscount, c as Approval, d as AuthResponse, e as AuthService, f as AutocompleteService, B as B2bPlaced, g as B2bRole, h as B2bService, i as BannerService, j as BaseService, k as BlogService, C as Cart, l as CartLine, m as CartService, n as CatalogService, o as Category, p as CategoryService, q as ChatService, r as CheckoutOptions, s as CheckoutResult, t as CheckoutService, u as CmsPage, v as Collection, w as CollectionService, x as Company, y as CompanyOrder, z as ContactService, D as CountryService, E as CouponService, F as Credentials, G as Credit, H as CurrencyService, I as Customer, J as DealService, K as DemoRequestService, L as EngineRequest, M as EnquiryService, N as Envelope, O as Faq, P as FaqService, Q as FeedbackService, R as Fulfillment, S as GalleryService, T as HomeLayout, U as HomeLayoutSection, V as HomeService, W as IdentityAddress, X as InitService, Y as Invitation, Z as LayoutCollection, _ as LayoutService, $ as Lead, a0 as ListMeta, a1 as MeilisearchService, a2 as Member, a3 as Menu, a4 as MenuItem, a5 as MenuService, a6 as MenuSummary, a7 as Money, a8 as NewsletterService, a9 as Offer, aa as Order, ab as OrderLine, ac as OrderService, ad as PageService, ae as PaymentIntent, af as PaymentMethodService, ag as Plugin, ah as PluginService, ah as PluginsService, ai as PopularSearchService, aj as PopularityService, ak as Product, al as ProductOption, am as ProductService, an as ProfileService, ao as Quote, ap as REDIRECT_GATEWAYS, aq as ReelsService, ar as RegionService, as as RejectedLine, at as Review, au as ReviewPage, av as ReviewService, aw as SearchDoc, ax as SearchResult, ay as SearchService, az as SettingService, az as SettingsService, aA as ShippingRate, aB as StateService, aC as StoreProfile, aD as StoreService, aE as StorefrontCategory, aF as StorefrontMenu, aG as StorefrontOrder, aH as StorefrontProduct, aI as ThemeSettings, aJ as ThemeSettingsResult, aK as UploadService, aL as UserService, aM as Variant, aN as VariantImage, aO as VariantService, aP as VarniCustomDesignService, aQ as VarniCustomProductService, aR as Vendor, aS as VendorService, aT as WarrantyService, aU as Wishlist, aV as WishlistItem, 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, b9 as currencyExponent, ba as currencyService, bb as dealService, bc as demoRequestService, bd as emptyCart, be as emptyPage, bf as enquiryService, bg as faqService, bh as feedbackService, bi as fromEngineAddress, bj as fromIdentityAddress, bk as fromSearchDoc, bl as galleryService, bm as homeService, bn as initService, bo as layoutService, bp as mediaUrl, bq as meilisearchService, br as menuService, bs as minorToMajor, 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, bC as priceOf, bD as productImages, 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, bS as toCart, bT as toCartLine, bU as toCategory, bV as toCmsPage, bW as toCollection, bX as toEngineAddress, bY as toIdentityAddress, bZ as toMajor, b_ as toMinor, b$ as toOrder, c0 as toPage, c1 as toProduct, c2 as toRating, c3 as toUser, c4 as toVariant, c5 as toVendor, 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 Address, a as AddressService, b as AppliedDiscount, c as Approval, d as AuthResponse, e as AuthService, f as AutocompleteService, B as B2bPlaced, g as B2bRole, h as B2bService, i as BannerService, j as BaseService, k as BlogService, C as Cart, l as CartLine, m as CartService, n as CatalogService, o as Category, p as CategoryService, q as ChatService, r as CheckoutOptions, s as CheckoutResult, t as CheckoutService, u as CmsPage, v as Collection, w as CollectionService, x as Company, y as CompanyOrder, z as ContactService, D as CountryService, E as CouponService, F as Credentials, G as Credit, H as CurrencyService, I as Customer, J as DealService, K as DemoRequestService, L as EngineRequest, M as EnquiryService, N as Envelope, O as Faq, P as FaqService, Q as FeedbackService, R as Fulfillment, S as GalleryService, T as HomeLayout, U as HomeLayoutSection, V as HomeService, W as IdentityAddress, X as InitService, Y as Invitation, Z as LayoutCollection, _ as LayoutPage, $ as LayoutService, a0 as Lead, a1 as ListMeta, a2 as MeilisearchService, a3 as Member, a4 as Menu, a5 as MenuItem, a6 as MenuService, a7 as MenuSummary, a8 as Money, a9 as NewsletterService, aa as Offer, ab as Order, ac as OrderLine, ad as OrderService, ae as PageLayout, af as PageService, ag as PaymentIntent, ah as PaymentMethodService, ai as Plugin, aj as PluginService, aj as PluginsService, ak as PopularSearchService, al as PopularityService, am as Product, an as ProductOption, ao as ProductService, ap as ProfileService, aq as Quote, ar as REDIRECT_GATEWAYS, as as ReelsService, at as RegionService, au as RejectedLine, av as Review, aw as ReviewPage, ax as ReviewService, ay as SearchDoc, az as SearchResult, aA as SearchService, aB as SettingService, aB as SettingsService, aC as ShippingRate, aD as StateService, aE as StoreProfile, aF as StoreService, aG as StorefrontCategory, aH as StorefrontMenu, aI as StorefrontOrder, aJ as StorefrontProduct, aK as ThemeSettings, aL as ThemeSettingsResult, aM as UploadService, aN as UserService, aO as Variant, aP as VariantImage, aQ as VariantService, aR as VarniCustomDesignService, aS as VarniCustomProductService, aT as Vendor, aU as VendorService, aV as WarrantyService, aW as Wishlist, aX as WishlistItem, 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, bb as currencyExponent, bc as currencyService, bd as dealService, be as demoRequestService, bf as emptyCart, bg as emptyPage, bh as enquiryService, bi as faqService, bj as feedbackService, bk as fromEngineAddress, bl as fromIdentityAddress, bm as fromSearchDoc, bn as galleryService, bo as homeService, bp as initService, bq as layoutService, br as mediaUrl, bs as meilisearchService, bt as menuService, bu as minorToMajor, 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, bE as priceOf, bF as productImages, 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, bU as toCart, bV as toCartLine, bW as toCategory, bX as toCmsPage, bY as toCollection, bZ as toEngineAddress, b_ as toIdentityAddress, b$ as toMajor, c0 as toMinor, c1 as toOrder, c2 as toPage, c3 as toProduct, c4 as toRating, c5 as toUser, c6 as toVariant, c7 as toVendor, 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';
2
2
 
3
3
  /**
4
4
  * The two ways a call through this connector fails.
package/dist/index.js CHANGED
@@ -1239,17 +1239,46 @@ var ProductService = class extends CatalogService {
1239
1239
  async listTrendingProducts({ page = 1, limit } = {}) {
1240
1240
  return this.shelf("trending", { page, limit });
1241
1241
  }
1242
- /** More from this product's category. */
1242
+ /**
1243
+ * More like this product. Given `product` (a slug or id), it is the
1244
+ * product's category first, then its collections, then the newest — never
1245
+ * the product itself. Many shops never fill in categories, and an empty
1246
+ * rail under every product page reads as a broken shop.
1247
+ *
1248
+ * Without `product`, it is the old answer: more from `categoryId`.
1249
+ */
1243
1250
  async listRelatedProducts({
1244
1251
  page = 1,
1245
1252
  categoryId,
1253
+ product,
1246
1254
  limit
1247
1255
  } = {}) {
1256
+ if (product) return this.relatedTo(String(product), limit);
1248
1257
  if (!categoryId) return this.list({ page, limit });
1249
1258
  const category = (await this.facts.categories()).find((c) => String(c.id) === String(categoryId));
1250
1259
  if (!category) return this.list({ page, limit });
1251
1260
  return this.list({ page, limit, categories: category.slug });
1252
1261
  }
1262
+ async relatedTo(slug, limit) {
1263
+ const size = Math.min(100, Math.max(1, Number(limit) || PAGE_SIZE));
1264
+ const p = await this.findProduct(slug);
1265
+ const self = String(p.id);
1266
+ const picked = /* @__PURE__ */ new Map();
1267
+ const add = (rows) => {
1268
+ for (const r of rows) {
1269
+ if (picked.size >= size) return;
1270
+ if (r.id !== self && !picked.has(r.id)) picked.set(r.id, r);
1271
+ }
1272
+ };
1273
+ if (p.category) add((await this.list({ limit: size + 1, categories: p.category.slug })).data);
1274
+ for (const c of p.collections ?? []) {
1275
+ if (picked.size >= size) break;
1276
+ add((await this.shelf(c.slug, { page: 1, limit: size + 1 })).data);
1277
+ }
1278
+ if (picked.size < size) add((await this.list({ limit: size + 1 })).data);
1279
+ const data = [...picked.values()];
1280
+ return { data, count: data.length, pageSize: size, noOfPage: 1, page: 1 };
1281
+ }
1253
1282
  async shelf(slug, { page, sort, limit }) {
1254
1283
  const size = Math.min(100, Math.max(1, Number(limit) || PAGE_SIZE));
1255
1284
  try {
@@ -2759,9 +2788,25 @@ var faqService = new FaqService();
2759
2788
  var MEDIA_KEYS = /* @__PURE__ */ new Set(["image", "mobile_image", "poster", "video_file"]);
2760
2789
  var LayoutService = class extends BaseService {
2761
2790
  async getHomeLayout({ preview } = {}) {
2791
+ return this.getPageLayout("home", { preview });
2792
+ }
2793
+ /**
2794
+ * The template every product page is drawn in: the sections around the
2795
+ * product's core (`main-product`). Null when none is published, so the
2796
+ * product page draws exactly as it did before templates existed.
2797
+ */
2798
+ async getProductLayout({ preview } = {}) {
2799
+ return this.getPageLayout("product", { preview });
2800
+ }
2801
+ /** The template every collection page is drawn in, around its grid (`main-collection`). */
2802
+ async getCollectionLayout({ preview } = {}) {
2803
+ return this.getPageLayout("collection", { preview });
2804
+ }
2805
+ /** Any arranged page by its key; null for none, as the three above. */
2806
+ async getPageLayout(page, { preview } = {}) {
2762
2807
  let layout;
2763
2808
  try {
2764
- layout = await this.data("/x/layouts/home", {
2809
+ layout = await this.data(`/x/layouts/${encodeURIComponent(page)}`, {
2765
2810
  query: { preview: preview?.trim() || void 0 }
2766
2811
  });
2767
2812
  } catch (err) {