@sixtyninecommerce/client 0.19.0 → 0.20.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/dist/commerce/branding.d.ts.map +1 -1
- package/dist/commerce/branding.js +6 -3
- package/dist/commerce/branding.js.map +1 -1
- package/dist/commerce/queries.d.ts +4 -4
- package/dist/commerce/queries.d.ts.map +1 -1
- package/dist/commerce/queries.js +4 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/media/index.d.ts +1 -1
- package/dist/media/index.d.ts.map +1 -1
- package/dist/media/index.js +3 -14
- package/dist/media/index.js.map +1 -1
- package/dist/media/urls.d.ts +4 -1
- package/dist/media/urls.d.ts.map +1 -1
- package/dist/media/urls.js +16 -0
- package/dist/media/urls.js.map +1 -1
- package/dist/seo/canonical.d.ts +2 -1
- package/dist/seo/canonical.d.ts.map +1 -1
- package/dist/seo/canonical.js +10 -9
- package/dist/seo/canonical.js.map +1 -1
- package/dist/seo/index.d.ts +1 -0
- package/dist/seo/index.d.ts.map +1 -1
- package/dist/seo/index.js +4 -1
- package/dist/seo/index.js.map +1 -1
- package/dist/seo/json-ld.d.ts +3 -0
- package/dist/seo/json-ld.d.ts.map +1 -1
- package/dist/seo/json-ld.js +11 -11
- package/dist/seo/json-ld.js.map +1 -1
- package/dist/seo/meta-tags.d.ts +2 -0
- package/dist/seo/meta-tags.d.ts.map +1 -1
- package/dist/seo/meta-tags.js +15 -9
- package/dist/seo/meta-tags.js.map +1 -1
- package/dist/seo/product-path.d.ts +14 -0
- package/dist/seo/product-path.d.ts.map +1 -0
- package/dist/seo/product-path.js +32 -0
- package/dist/seo/product-path.js.map +1 -0
- package/dist/seo/types.d.ts +1 -0
- package/dist/seo/types.d.ts.map +1 -1
- package/dist/seo/url-builder.d.ts +4 -0
- package/dist/seo/url-builder.d.ts.map +1 -1
- package/dist/seo/url-builder.js +31 -0
- package/dist/seo/url-builder.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branding.d.ts","sourceRoot":"","sources":["../../src/commerce/branding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"branding.d.ts","sourceRoot":"","sources":["../../src/commerce/branding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlD,OAAO,KAAK,EAGV,YAAY,EAEZ,cAAc,EACd,YAAY,EACb,MAAM,aAAa,CAAC;AAmBrB,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY;0BAEzC,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;EAwGrE"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createContextAssetUrlResolver } from '../media/urls.js';
|
|
2
|
+
import { normalizeProductPathSegment } from '../seo/product-path.js';
|
|
2
3
|
import { GET_BRANDING } from './queries.js';
|
|
3
4
|
export function createBrandingMethods(http, ctx) {
|
|
4
5
|
return {
|
|
@@ -13,13 +14,14 @@ export function createBrandingMethods(http, ctx) {
|
|
|
13
14
|
const uniqueIds = [...new Set(channelAssetIds)];
|
|
14
15
|
const data = await http.graphql(GET_BRANDING, { ids: uniqueIds }, options);
|
|
15
16
|
const channelAssetsById = new Map(data.brandingAssets.map((a) => [a.id, a]));
|
|
17
|
+
const resolveAssetUrl = createContextAssetUrlResolver(ctx);
|
|
16
18
|
const toRef = (asset) => {
|
|
17
19
|
if (!asset)
|
|
18
20
|
return null;
|
|
19
21
|
return {
|
|
20
22
|
id: asset.id,
|
|
21
|
-
url:
|
|
22
|
-
preview: asset.preview ?
|
|
23
|
+
url: resolveAssetUrl(asset.source),
|
|
24
|
+
preview: asset.preview ? resolveAssetUrl(asset.preview) : null,
|
|
23
25
|
mimeType: asset.mimeType ?? null,
|
|
24
26
|
};
|
|
25
27
|
};
|
|
@@ -73,6 +75,7 @@ export function createBrandingMethods(http, ctx) {
|
|
|
73
75
|
urlLocalePrefixDefault: cf.urlLocalePrefixDefault === true,
|
|
74
76
|
commercePathPrefix: readString(cf.commercePathPrefix),
|
|
75
77
|
commercePathPrefixTranslations: parsePrefixTranslations(readString(cf.commercePathPrefixTranslations)),
|
|
78
|
+
productPathSegment: normalizeProductPathSegment(readString(cf.productPathSegment)),
|
|
76
79
|
maintenanceMode: cf.maintenanceMode === true,
|
|
77
80
|
defaultLanguage: data.activeChannel.defaultLanguageCode,
|
|
78
81
|
defaultCurrency: data.activeChannel.defaultCurrencyCode,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branding.js","sourceRoot":"","sources":["../../src/commerce/branding.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"branding.js","sourceRoot":"","sources":["../../src/commerce/branding.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export declare const GET_PRODUCT = "\n query GetProduct($slug: String!) {\n product(slug: $slug) {\n id name slug description\n featuredAsset {\n source name width height\n customFields { altText }\n presets {\n xxs { url webpUrl } xs { url webpUrl }\n s { url webpUrl } m { url webpUrl }\n l { url webpUrl } xl { url webpUrl }\n }\n }\n assets {\n source name width height\n customFields { altText }\n presets {\n xs { url webpUrl } m { url webpUrl }\n l { url webpUrl } xl { url webpUrl }\n }\n }\n variants {\n id name sku\n price priceWithTax currencyCode stockLevel\n stockOnHand stockAllocated saleable\n incomingStock projectedSaleable nextExpectedArrival\n priceListName retailPrice retailPriceWithTax taxRateApplied { value }\n priceTiers { minQuantity price priceWithTax discountLabel }\n availabilityByLocation { locationId locationName inStock }\n options { id code name group { id name code } }\n customFields { minOrderQuantity salesUnit position }\n featuredAsset {\n source name width height\n customFields { altText }\n presets { xs { url webpUrl } m { url webpUrl } }\n }\n assets {\n source name width height\n customFields { altText }\n presets { m { url webpUrl } l { url webpUrl } }\n }\n }\n optionGroups { id name code options { id name code } }\n facetValues { id name code facet { id name code } }\n translations { languageCode name slug description }\n collections {\n id name slug position\n parent { id }\n translations { languageCode name slug }\n customFields { isRoutable isCanonical }\n }\n documents {\n id position title description fileUrl fileMimeType fileSize fileName requiresAuth\n }\n \n metadata {\n seoTitle seoDescription canonicalUrl\n socialTitle socialDescription socialImageAlt socialOgType\n socialImage {\n source name\n customFields { altText }\n presets {\n xs { url webpUrl } m { url webpUrl }\n l { url webpUrl } xl { url webpUrl }\n }\n }\n twitterCardType twitterTitleOverride twitterDescriptionOverride\n twitterImageOverride {\n source name\n customFields { altText }\n presets {\n xs { url webpUrl } m { url webpUrl }\n l { url webpUrl } xl { url webpUrl }\n }\n }\n aiSummary qaPairs qaEmitFaqpageJsonld\n breadcrumbOverride hreflangOverrides\n metaRobots resolvedBotDirectives\n includeReviewsInJsonld\n }\n\n }\n }\n";
|
|
2
|
-
export declare const GET_PRODUCT_BY_ID = "\n query GetProductById($id: ID!) {\n product(id: $id) {\n id name slug description\n featuredAsset {\n source name width height\n customFields { altText }\n presets {\n xxs { url webpUrl } xs { url webpUrl }\n s { url webpUrl } m { url webpUrl }\n l { url webpUrl } xl { url webpUrl }\n }\n }\n assets {\n source name width height\n customFields { altText }\n presets {\n xs { url webpUrl } m { url webpUrl }\n l { url webpUrl } xl { url webpUrl }\n }\n }\n variants {\n id name sku\n price priceWithTax currencyCode stockLevel\n stockOnHand stockAllocated saleable\n incomingStock projectedSaleable nextExpectedArrival\n priceListName retailPrice retailPriceWithTax taxRateApplied { value }\n priceTiers { minQuantity price priceWithTax discountLabel }\n availabilityByLocation { locationId locationName inStock }\n options { id code name group { id name code } }\n customFields { minOrderQuantity salesUnit position }\n featuredAsset {\n source name width height\n customFields { altText }\n presets { xs { url webpUrl } m { url webpUrl } }\n }\n assets {\n source name width height\n customFields { altText }\n presets { m { url webpUrl } l { url webpUrl } }\n }\n }\n optionGroups { id name code options { id name code } }\n facetValues { id name code facet { id name code } }\n translations { languageCode name slug description }\n collections {\n id name slug position\n parent { id }\n translations { languageCode name slug }\n customFields { isRoutable isCanonical }\n }\n documents {\n id position title description fileUrl fileMimeType fileSize fileName requiresAuth\n }\n \n metadata {\n seoTitle seoDescription canonicalUrl\n socialTitle socialDescription socialImageAlt socialOgType\n socialImage {\n source name\n customFields { altText }\n presets {\n xs { url webpUrl } m { url webpUrl }\n l { url webpUrl } xl { url webpUrl }\n }\n }\n twitterCardType twitterTitleOverride twitterDescriptionOverride\n twitterImageOverride {\n source name\n customFields { altText }\n presets {\n xs { url webpUrl } m { url webpUrl }\n l { url webpUrl } xl { url webpUrl }\n }\n }\n aiSummary qaPairs qaEmitFaqpageJsonld\n breadcrumbOverride hreflangOverrides\n metaRobots resolvedBotDirectives\n includeReviewsInJsonld\n }\n\n }\n }\n";
|
|
3
|
-
export declare const LIST_PRODUCTS = "\n query ListProducts($options: ProductListOptions) {\n products(options: $options) {\n items {\n id name slug description enabled\n featuredAsset {\n source name width height\n customFields { altText }\n presets { xs { url webpUrl } m { url webpUrl } l { url webpUrl } }\n }\n variants {\n id name sku\n price priceWithTax currencyCode stockLevel\n stockOnHand stockAllocated saleable\n incomingStock projectedSaleable nextExpectedArrival\n priceListName retailPrice retailPriceWithTax taxRateApplied { value }\n priceTiers { minQuantity price priceWithTax discountLabel }\n availabilityByLocation { locationId locationName inStock }\n customFields { minOrderQuantity salesUnit position }\n }\n facetValues { id name code facet { id name code } }\n translations { languageCode name slug description }\n collections {\n id name slug position\n parent { id }\n translations { languageCode name slug }\n customFields { isRoutable isCanonical }\n }\n }\n totalItems\n }\n }\n";
|
|
1
|
+
export declare const GET_PRODUCT = "\n query GetProduct($slug: String!) {\n product(slug: $slug) {\n id name slug description\n featuredAsset {\n source name width height\n customFields { altText }\n presets {\n xxs { url webpUrl } xs { url webpUrl }\n s { url webpUrl } m { url webpUrl }\n l { url webpUrl } xl { url webpUrl }\n }\n }\n assets {\n source name width height\n customFields { altText }\n presets {\n xs { url webpUrl } m { url webpUrl }\n l { url webpUrl } xl { url webpUrl }\n }\n }\n variants {\n id name sku\n price priceWithTax currencyCode stockLevel\n stockOnHand stockAllocated saleable\n incomingStock projectedSaleable nextExpectedArrival\n priceListName retailPrice retailPriceWithTax taxRateApplied { value }\n priceTiers { minQuantity price priceWithTax discountLabel }\n availabilityByLocation { locationId locationName inStock }\n options { id code name group { id name code } }\n customFields { minOrderQuantity salesUnit position }\n featuredAsset {\n source name width height\n customFields { altText }\n presets { xs { url webpUrl } m { url webpUrl } }\n }\n assets {\n source name width height\n customFields { altText }\n presets { m { url webpUrl } l { url webpUrl } }\n }\n }\n optionGroups { id name code options { id name code } }\n facetValues { id name code facet { id name code } }\n translations { languageCode name slug description }\n collections {\n id name slug position\n parent { id slug }\n translations { languageCode name slug }\n customFields { isRoutable isCanonical }\n }\n documents {\n id position title description fileUrl fileMimeType fileSize fileName requiresAuth\n }\n \n metadata {\n seoTitle seoDescription canonicalUrl\n socialTitle socialDescription socialImageAlt socialOgType\n socialImage {\n source name\n customFields { altText }\n presets {\n xs { url webpUrl } m { url webpUrl }\n l { url webpUrl } xl { url webpUrl }\n }\n }\n twitterCardType twitterTitleOverride twitterDescriptionOverride\n twitterImageOverride {\n source name\n customFields { altText }\n presets {\n xs { url webpUrl } m { url webpUrl }\n l { url webpUrl } xl { url webpUrl }\n }\n }\n aiSummary qaPairs qaEmitFaqpageJsonld\n breadcrumbOverride hreflangOverrides\n metaRobots resolvedBotDirectives\n includeReviewsInJsonld\n }\n\n }\n }\n";
|
|
2
|
+
export declare const GET_PRODUCT_BY_ID = "\n query GetProductById($id: ID!) {\n product(id: $id) {\n id name slug description\n featuredAsset {\n source name width height\n customFields { altText }\n presets {\n xxs { url webpUrl } xs { url webpUrl }\n s { url webpUrl } m { url webpUrl }\n l { url webpUrl } xl { url webpUrl }\n }\n }\n assets {\n source name width height\n customFields { altText }\n presets {\n xs { url webpUrl } m { url webpUrl }\n l { url webpUrl } xl { url webpUrl }\n }\n }\n variants {\n id name sku\n price priceWithTax currencyCode stockLevel\n stockOnHand stockAllocated saleable\n incomingStock projectedSaleable nextExpectedArrival\n priceListName retailPrice retailPriceWithTax taxRateApplied { value }\n priceTiers { minQuantity price priceWithTax discountLabel }\n availabilityByLocation { locationId locationName inStock }\n options { id code name group { id name code } }\n customFields { minOrderQuantity salesUnit position }\n featuredAsset {\n source name width height\n customFields { altText }\n presets { xs { url webpUrl } m { url webpUrl } }\n }\n assets {\n source name width height\n customFields { altText }\n presets { m { url webpUrl } l { url webpUrl } }\n }\n }\n optionGroups { id name code options { id name code } }\n facetValues { id name code facet { id name code } }\n translations { languageCode name slug description }\n collections {\n id name slug position\n parent { id slug }\n translations { languageCode name slug }\n customFields { isRoutable isCanonical }\n }\n documents {\n id position title description fileUrl fileMimeType fileSize fileName requiresAuth\n }\n \n metadata {\n seoTitle seoDescription canonicalUrl\n socialTitle socialDescription socialImageAlt socialOgType\n socialImage {\n source name\n customFields { altText }\n presets {\n xs { url webpUrl } m { url webpUrl }\n l { url webpUrl } xl { url webpUrl }\n }\n }\n twitterCardType twitterTitleOverride twitterDescriptionOverride\n twitterImageOverride {\n source name\n customFields { altText }\n presets {\n xs { url webpUrl } m { url webpUrl }\n l { url webpUrl } xl { url webpUrl }\n }\n }\n aiSummary qaPairs qaEmitFaqpageJsonld\n breadcrumbOverride hreflangOverrides\n metaRobots resolvedBotDirectives\n includeReviewsInJsonld\n }\n\n }\n }\n";
|
|
3
|
+
export declare const LIST_PRODUCTS = "\n query ListProducts($options: ProductListOptions) {\n products(options: $options) {\n items {\n id name slug description enabled\n featuredAsset {\n source name width height\n customFields { altText }\n presets { xs { url webpUrl } m { url webpUrl } l { url webpUrl } }\n }\n variants {\n id name sku\n price priceWithTax currencyCode stockLevel\n stockOnHand stockAllocated saleable\n incomingStock projectedSaleable nextExpectedArrival\n priceListName retailPrice retailPriceWithTax taxRateApplied { value }\n priceTiers { minQuantity price priceWithTax discountLabel }\n availabilityByLocation { locationId locationName inStock }\n customFields { minOrderQuantity salesUnit position }\n }\n facetValues { id name code facet { id name code } }\n translations { languageCode name slug description }\n collections {\n id name slug position\n parent { id slug }\n translations { languageCode name slug }\n customFields { isRoutable isCanonical }\n }\n }\n totalItems\n }\n }\n";
|
|
4
4
|
export declare const LIST_FACETS = "\n query ListFacets {\n facets {\n items {\n id name code\n values { id name code }\n }\n totalItems\n }\n }\n";
|
|
5
5
|
export declare const LIST_COLLECTIONS = "\n query ListCollections($options: CollectionListOptions) {\n collections(options: $options) {\n items {\n id name slug description\n breadcrumbs { id name slug }\n featuredAsset {\n source width height\n presets { xs { url webpUrl } m { url webpUrl } }\n }\n parent { id name slug }\n children { id name slug }\n }\n totalItems\n }\n }\n";
|
|
6
6
|
export declare const GET_COLLECTION = "\n query GetCollection($slug: String!) {\n collection(slug: $slug) {\n id name slug description position\n featuredAsset {\n source width height\n presets { l { url webpUrl } xl { url webpUrl } }\n }\n breadcrumbs { id name slug }\n parent { id }\n children { id name slug }\n customFields {\n isRoutable\n isCanonical\n noindex\n nofollow\n metaRobotsMaxImagePreview\n socialImageId\n socialOgType\n twitterCardType\n }\n translations {\n languageCode\n name\n slug\n customFields {\n seoTitle\n seoDescription\n canonicalUrl\n socialTitle\n socialDescription\n socialImageAlt\n }\n }\n productVariants(options: { take: 20 }) {\n items {\n id\n product {\n id name slug\n featuredAsset { source width height presets { m { url webpUrl } } }\n }\n price priceWithTax currencyCode stockLevel\n stockOnHand stockAllocated saleable\n incomingStock projectedSaleable nextExpectedArrival\n priceListName retailPrice retailPriceWithTax taxRateApplied { value }\n priceTiers { minQuantity price priceWithTax discountLabel }\n availabilityByLocation { locationId locationName inStock }\n customFields { minOrderQuantity salesUnit position }\n }\n totalItems\n }\n }\n }\n";
|
|
@@ -57,7 +57,7 @@ export declare const FAVORITE_VARIANT_IDS = "\n query FavoriteVariantIds {\n
|
|
|
57
57
|
export declare const MY_FAVORITES = "\n query MyFavorites($options: FavoriteListOptions) {\n myFavorites(options: $options) {\n items {\n id\n productVariantId\n createdAt\n productVariant {\n id name sku\n price priceWithTax currencyCode stockLevel\n stockOnHand stockAllocated saleable\n incomingStock projectedSaleable nextExpectedArrival\n priceListName retailPrice retailPriceWithTax taxRateApplied { value }\n priceTiers { minQuantity price priceWithTax discountLabel }\n availabilityByLocation { locationId locationName inStock }\n product {\n id name slug\n featuredAsset {\n source width height\n customFields { altText }\n presets { xs { url webpUrl } m { url webpUrl } l { url webpUrl } }\n }\n }\n options { id name group { name } }\n customFields { minOrderQuantity salesUnit position }\n }\n }\n totalItems\n }\n }\n";
|
|
58
58
|
export declare const TOGGLE_FAVORITE = "\n mutation ToggleFavorite($productVariantId: ID!) {\n toggleFavorite(productVariantId: $productVariantId)\n }\n";
|
|
59
59
|
export declare const REMOVE_FAVORITE = "\n mutation RemoveFavorite($productVariantId: ID!) {\n removeFavorite(productVariantId: $productVariantId)\n }\n";
|
|
60
|
-
export declare const GET_ACTIVE_CHANNEL = "\n query ActiveChannel {\n activeChannel {\n id code\n defaultLanguageCode\n availableLanguageCodes\n defaultCurrencyCode\n availableCurrencyCodes\n \n customFields {\n businessName businessDescription\n logoAssetId darkLogoAssetId coverAssetId faviconAssetId\n websiteUrl primaryColor\n contactEmail contactPhone\n legalName vatNumber registrationNumber\n addressLine1 addressLine2 city postalCode province country\n socialLinks\n commercePathPrefix commercePathPrefixTranslations\n cdnDomain maintenanceMode\n urlLocaleStrategy urlLocalePrefixDefault\n twitterHandle defaultOgImageId llmsTxtEnabled\n storefrontUrl quotesEnabled\n returnsEnabled returnWindowDays\n }\n\n }\n }\n";
|
|
60
|
+
export declare const GET_ACTIVE_CHANNEL = "\n query ActiveChannel {\n activeChannel {\n id code\n defaultLanguageCode\n availableLanguageCodes\n defaultCurrencyCode\n availableCurrencyCodes\n \n customFields {\n businessName businessDescription\n logoAssetId darkLogoAssetId coverAssetId faviconAssetId\n websiteUrl primaryColor\n contactEmail contactPhone\n legalName vatNumber registrationNumber\n addressLine1 addressLine2 city postalCode province country\n socialLinks\n commercePathPrefix commercePathPrefixTranslations productPathSegment\n cdnDomain maintenanceMode\n urlLocaleStrategy urlLocalePrefixDefault\n twitterHandle defaultOgImageId llmsTxtEnabled\n storefrontUrl quotesEnabled\n returnsEnabled returnWindowDays\n }\n\n }\n }\n";
|
|
61
61
|
export declare const PROPERTY_GROUPS = "\n query PropertyGroups {\n productPropertyGroups {\n id position\n translations { id languageCode name }\n properties {\n id slug fieldType isFilterable isRequired position\n config { options { value label } min max maxLength allowedCollectionIds filterableFieldSlugs }\n facetId\n fieldFacets { fieldSlug fieldType facetId }\n translations { id languageCode name helpText }\n }\n }\n }\n";
|
|
62
62
|
export declare const PRODUCT_PROPERTIES = "\n query ProductProperties($productId: ID!) {\n productPropertyValues(productId: $productId) {\n group {\n id position\n translations { id languageCode name }\n properties {\n id slug fieldType isFilterable isRequired position\n config { options { value label } min max maxLength }\n facetId\n fieldFacets { fieldSlug fieldType facetId }\n translations { id languageCode name helpText }\n }\n }\n values { id propertyId languageCode value }\n }\n }\n";
|
|
63
63
|
export declare const GET_PRODUCT_RECOMMENDATIONS = "\n query ProductRecommendations($productId: ID!, $groupSlug: String) {\n productRecommendations(productId: $productId, groupSlug: $groupSlug) {\n groupName\n groupSlug\n products {\n id name slug description\n featuredAsset {\n source name width height\n customFields { altText }\n presets { xs { url webpUrl } m { url webpUrl } l { url webpUrl } }\n }\n variants {\n id name sku\n price priceWithTax currencyCode stockLevel\n stockOnHand stockAllocated saleable\n incomingStock projectedSaleable nextExpectedArrival\n priceListName retailPrice retailPriceWithTax taxRateApplied { value }\n priceTiers { minQuantity price priceWithTax discountLabel }\n availabilityByLocation { locationId locationName inStock }\n customFields { minOrderQuantity salesUnit position }\n }\n }\n }\n }\n";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/commerce/queries.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/commerce/queries.ts"],"names":[],"mappings":"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"}
|
package/dist/commerce/queries.js
CHANGED
|
@@ -72,7 +72,7 @@ export const GET_PRODUCT = `
|
|
|
72
72
|
translations { languageCode name slug description }
|
|
73
73
|
collections {
|
|
74
74
|
id name slug position
|
|
75
|
-
parent { id }
|
|
75
|
+
parent { id slug }
|
|
76
76
|
translations { languageCode name slug }
|
|
77
77
|
customFields { isRoutable isCanonical }
|
|
78
78
|
}
|
|
@@ -130,7 +130,7 @@ export const GET_PRODUCT_BY_ID = `
|
|
|
130
130
|
translations { languageCode name slug description }
|
|
131
131
|
collections {
|
|
132
132
|
id name slug position
|
|
133
|
-
parent { id }
|
|
133
|
+
parent { id slug }
|
|
134
134
|
translations { languageCode name slug }
|
|
135
135
|
customFields { isRoutable isCanonical }
|
|
136
136
|
}
|
|
@@ -165,7 +165,7 @@ export const LIST_PRODUCTS = `
|
|
|
165
165
|
translations { languageCode name slug description }
|
|
166
166
|
collections {
|
|
167
167
|
id name slug position
|
|
168
|
-
parent { id }
|
|
168
|
+
parent { id slug }
|
|
169
169
|
translations { languageCode name slug }
|
|
170
170
|
customFields { isRoutable isCanonical }
|
|
171
171
|
}
|
|
@@ -882,7 +882,7 @@ const CHANNEL_CUSTOM_FIELDS_FRAGMENT = `
|
|
|
882
882
|
legalName vatNumber registrationNumber
|
|
883
883
|
addressLine1 addressLine2 city postalCode province country
|
|
884
884
|
socialLinks
|
|
885
|
-
commercePathPrefix commercePathPrefixTranslations
|
|
885
|
+
commercePathPrefix commercePathPrefixTranslations productPathSegment
|
|
886
886
|
cdnDomain maintenanceMode
|
|
887
887
|
urlLocaleStrategy urlLocalePrefixDefault
|
|
888
888
|
twitterHandle defaultOgImageId llmsTxtEnabled
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,6 @@ export { buildFilteredProductsSearch, type FilteredProductsConfig, type Filtered
|
|
|
4
4
|
export { FORM_FIELD_TYPES, FORM_SLUG_RULES } from './content/form-field-types.js';
|
|
5
5
|
export { MutationError, StorefrontError } from './errors.js';
|
|
6
6
|
export type { AiSummaryInput, BotDirective, BreadcrumbOverrideEntry, CmsItemMetadata, CmsMetaTagsInput, CmsSeoExtras, CollectionForSeo, CollectionMetadata, CollectionMetaTagsInput, CollectionSeoExtras, CommonSeoMetadata, HreflangLink, HreflangLinkTag, HreflangOverrideEntry, LlmsTxtEntryInput, MetaRobots, MetaRobotsFollowDirective, MetaRobotsIndexDirective, MetaRobotsMaxImagePreview, MetaTagsEntityInput, MetaTagsResult, OpenGraphTag, PerBotDirectives, ProductForSeo, ProductMetadata, ProductMetadataAi, ProductMetadataSocial, ProductMetadataTwitter, ProductMetaTagsInput, ProductSeoExtras, QAPair, RawCmsSeo, RawCollectionSeo, RawProductMetadata, RobotsMetaTag, RobotsXRobotsHeader, SeoEntityInput, SeoMeta, SeoModule, SocialOgType, TwitterCardType, TwitterTag, UrlLocaleStrategy, UrlStrategyConfig, } from './seo/index.js';
|
|
7
|
-
export { buildUrl, parseCmsItemMetadata, parseCollectionMetadata, parseProductMetadata, readUrlStrategy, robotsFromFlags, } from './seo/index.js';
|
|
7
|
+
export { buildUrl, DEFAULT_PRODUCT_PATH_SEGMENT, isUserFacingRoot, normalizeProductPathSegment, parseCmsItemMetadata, parseCollectionMetadata, parseProductMetadata, pickCanonicalRootIndex, readUrlStrategy, robotsFromFlags, } from './seo/index.js';
|
|
8
8
|
export type { ActiveChannel, AddressInput, AgeVerificationStatus, Asset, AssetPresetSize, AssetPresets, B2bCreditStatus, BrandingAssetRef, BrandingContact, BrandingFontResource, BrandingIdentity, BrandingInfo, BrandingLegal, BrandingLegalAddress, BrandingSocialLinks, BrandingStorefrontConfig, BrandingTheme, Breadcrumb, ChannelInfo, CmsAsset, CmsAssetTranslation, Collection, CollectionDetail, CollectionFieldDefinition, CollectionListOptions, CollectionPageValues, CollectionProductListOptions, CollectionProductSummary, CollectionProductVariant, CommerceModule, ContentItemSummary, ContentItemWithFields, ContentModule, ContentQueryOptions, ContentSearchHit, ContentSearchQuery, ContentSearchResult, ContentStrings, ConvertedAmount, Country, CreateMolliePaymentIntentInput, CreateQuoteRequestInput, CreateReviewInput, CreateReviewResult, CreditBalanceSource, CreditModule, CurrencyModule, Customer, CustomerAddress, CustomerDeliveryTerms, CustomerGroup, CustomerInput, CustomerPaymentTerms, CustomerPriceList, CustomerReturn, CustomerReturnEligibility, CustomerReturnLine, CustomerReturnList, CustomerReturnListOptions, CustomerReturnReasonCode, CustomerReturnSettlementMethod, CustomerReturnState, CustomerSubscription, CustomerSubscriptionStatus, DeliveryAdvice, DeliveryOption, DeliveryOptionsInput, DeliverySelectionSource, DeliveryTermsStatus, DeliveryTimeFrame, DisplayPrice, DropOffPoint, DropOffPointInput, ExchangeRate, Facet, FacetValue, FacetValueFilterInput, FavoriteItem, FavoriteVariant, FormDefinition, FormField, FormFieldTypeConstraint, FormFieldTypeDescriptor, FormFieldTypeRegistry, FormListOptions, FormListResult, FormSlugRule, FormSlugRules, FormSubmissionResult, FormSummary, FormTranslation, LoginResult, MediaModule, Menu, MenuItem, MollieOrderStatusResult, MolliePaymentIntentResult, MolliePaymentMethod, MolliePaymentMethodAmount, MolliePaymentMethodsInput, MyPaymentMandate, NavigationModule, OptionGroup, Order, OrderAddress, OrderDeliveryTermsSnapshot, OrderedMollieMethod, OrderLine, OrderListOptions, OrderPayment, OrderPaymentTermsSnapshot, OrderSummary, OrderValidationError, OrderValidationResult, PaginatedList, PaymentInput, PaymentMethod, PaymentTermsClassification, PaymentTermsStatus, PresetName, PriceDisplay, PriceTier, PricingModule, Product, ProductListOptions, ProductOption, ProductPropertyGroupValues, ProductPropertyRecord, ProductReview, ProductSummary, ProductVariant, Property, PropertyConfig, PropertyFieldFacet, PropertyGroup, PropertyGroupTranslation, PropertyTranslation, PropertyValue, PublicProductDocument, Quote, QuoteLine, QuoteList, QuoteListOptions, QuoteStatus, RecommendedProductGroup, RegisterInput, RequestOptions, RequestReturnInput, RequestReturnLineInput, ResolvedContent, ResponsiveImageData, RetryConfig, ReturnableOrderLine, ReviewAttribute, ReviewAttributeAggregation, ReviewChannelConfig, ReviewListOptions, ReviewMediaUploadResult, ReviewRatingDistribution, ReviewRatingSummary, RouteEntry, RoutesResponse, SavedList, SavedListItem, SearchFacetValue, SearchInput, SearchResult, SearchResultItem, SetupPaymentMandateResult, ShipmentTrackingHistoryEntry, ShipmentTrackingInfo, ShippingLine, ShippingMethod, SitemapEntry, StoreContext, StorefrontClient, StorefrontClientConfig, StripePaymentIntentResult, SubscriptionPlanPublic, TaxDisplayMode, TierTableEntry, UpdateAddressInput, UpdateCustomerInput, UpdateReviewInput, VariantPriceData, VatValidationResult, VendureAssetDescriptionTranslation, } from './types.js';
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,5 +3,5 @@ export { DEFAULT_CMS_URL, DEFAULT_PLUGINS_URL, DEFAULT_VENDURE_URL, RESERVED_STO
|
|
|
3
3
|
export { buildFilteredProductsSearch, } from './content/filtered-products.js';
|
|
4
4
|
export { FORM_FIELD_TYPES, FORM_SLUG_RULES } from './content/form-field-types.js';
|
|
5
5
|
export { MutationError, StorefrontError } from './errors.js';
|
|
6
|
-
export { buildUrl, parseCmsItemMetadata, parseCollectionMetadata, parseProductMetadata, readUrlStrategy, robotsFromFlags, } from './seo/index.js';
|
|
6
|
+
export { buildUrl, DEFAULT_PRODUCT_PATH_SEGMENT, isUserFacingRoot, normalizeProductPathSegment, parseCmsItemMetadata, parseCollectionMetadata, parseProductMetadata, pickCanonicalRootIndex, readUrlStrategy, robotsFromFlags, } from './seo/index.js';
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EAEzB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,2BAA2B,GAG5B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA+C7D,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,eAAe,GAChB,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EAEzB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,2BAA2B,GAG5B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA+C7D,OAAO,EACL,QAAQ,EACR,4BAA4B,EAC5B,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,eAAe,GAChB,MAAM,gBAAgB,CAAC"}
|
package/dist/media/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { MediaModule, StoreContext } from '../types.js';
|
|
2
|
-
export { DEFAULT_PRESET, getPresetUrl, getResponsiveImageData, isRasterImage, PRESETS, RASTER_MIME_TYPES, } from './urls.js';
|
|
2
|
+
export { createAssetUrlResolver, createContextAssetUrlResolver, DEFAULT_PRESET, getPresetUrl, getResponsiveImageData, isRasterImage, PRESETS, RASTER_MIME_TYPES, } from './urls.js';
|
|
3
3
|
export { getEmbedUrl, getThumbnailUrl, getVideoEmbedHtml, type ParsedVideo, parseVideoUrl, type VideoProvider, type VideoSource, type VideoValue, } from './video.js';
|
|
4
4
|
export declare function createMediaModule(ctx: StoreContext): MediaModule;
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG7D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,sBAAsB,EACtB,aAAa,EACb,OAAO,EACP,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,KAAK,WAAW,EAChB,aAAa,EACb,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG7D,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,cAAc,EACd,YAAY,EACZ,sBAAsB,EACtB,aAAa,EACb,OAAO,EACP,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,KAAK,WAAW,EAChB,aAAa,EACb,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG,WAAW,CAgChE"}
|
package/dist/media/index.js
CHANGED
|
@@ -1,19 +1,8 @@
|
|
|
1
|
-
import { getPresetUrl, getResponsiveImageData
|
|
2
|
-
export { DEFAULT_PRESET, getPresetUrl, getResponsiveImageData, isRasterImage, PRESETS, RASTER_MIME_TYPES, } from './urls.js';
|
|
1
|
+
import { createContextAssetUrlResolver, getPresetUrl, getResponsiveImageData } from './urls.js';
|
|
2
|
+
export { createAssetUrlResolver, createContextAssetUrlResolver, DEFAULT_PRESET, getPresetUrl, getResponsiveImageData, isRasterImage, PRESETS, RASTER_MIME_TYPES, } from './urls.js';
|
|
3
3
|
export { getEmbedUrl, getThumbnailUrl, getVideoEmbedHtml, parseVideoUrl, } from './video.js';
|
|
4
4
|
export function createMediaModule(ctx) {
|
|
5
|
-
const
|
|
6
|
-
function resolveUrl(path) {
|
|
7
|
-
if (!path)
|
|
8
|
-
return '';
|
|
9
|
-
if (path.startsWith('http://') || path.startsWith('https://'))
|
|
10
|
-
return path;
|
|
11
|
-
let clean = path.replace(/^\/+/, '');
|
|
12
|
-
if (channelPrefix && clean.startsWith(channelPrefix)) {
|
|
13
|
-
clean = clean.slice(channelPrefix.length);
|
|
14
|
-
}
|
|
15
|
-
return makeAssetUrl(ctx.cdnUrl, clean);
|
|
16
|
-
}
|
|
5
|
+
const resolveUrl = createContextAssetUrlResolver(ctx);
|
|
17
6
|
return {
|
|
18
7
|
assetUrl: resolveUrl,
|
|
19
8
|
getFullUrl(asset) {
|
package/dist/media/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEhG,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,cAAc,EACd,YAAY,EACZ,sBAAsB,EACtB,aAAa,EACb,OAAO,EACP,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,WAAW,EACX,eAAe,EACf,iBAAiB,EAEjB,aAAa,GAId,MAAM,YAAY,CAAC;AAEpB,MAAM,UAAU,iBAAiB,CAAC,GAAiB;IACjD,MAAM,UAAU,GAAG,6BAA6B,CAAC,GAAG,CAAC,CAAC;IAEtD,OAAO;QACL,QAAQ,EAAE,UAAU;QACpB,UAAU,CAAC,KAAK;YAGd,OAAO,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QACD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM;YAChC,OAAO,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,sBAAsB,CAAC,KAAK,EAAE,OAAO;YACnC,MAAM,IAAI,GAAG,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACpD,OAAO;gBACL,GAAG,IAAI;gBACP,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;gBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACjB,CAAC,CAAC,IAAI,CAAC,MAAM;yBACR,KAAK,CAAC,IAAI,CAAC;yBACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;wBACb,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;wBACzC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;wBACtC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;wBAC1C,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,EAAE,CAAC;oBAC3C,CAAC,CAAC;yBACD,IAAI,CAAC,IAAI,CAAC;oBACf,CAAC,CAAC,EAAE;aACP,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/media/urls.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Asset, PresetName, ResponsiveImageData } from '../types.js';
|
|
1
|
+
import type { Asset, PresetName, ResponsiveImageData, StoreContext } from '../types.js';
|
|
2
2
|
export declare const PRESETS: {
|
|
3
3
|
readonly xxs: {
|
|
4
4
|
readonly width: 50;
|
|
@@ -29,6 +29,9 @@ export declare const DEFAULT_PRESET: PresetName;
|
|
|
29
29
|
export declare const RASTER_MIME_TYPES: Set<string>;
|
|
30
30
|
export declare function isRasterImage(mimeType: string): boolean;
|
|
31
31
|
export declare function makeAssetUrl(cdnUrl: string, path: string): string;
|
|
32
|
+
export type AssetUrlResolver = (path: string | null | undefined) => string;
|
|
33
|
+
export declare function createAssetUrlResolver(cdnUrl: string, channelPrefix: string | null): AssetUrlResolver;
|
|
34
|
+
export declare function createContextAssetUrlResolver(ctx: StoreContext): AssetUrlResolver;
|
|
32
35
|
export declare function getPresetUrl(asset: Asset, preset: PresetName, format?: 'original' | 'webp'): string;
|
|
33
36
|
export declare function getResponsiveImageData(asset: Asset, presets?: PresetName[]): ResponsiveImageData;
|
|
34
37
|
//# sourceMappingURL=urls.d.ts.map
|
package/dist/media/urls.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urls.d.ts","sourceRoot":"","sources":["../../src/media/urls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"urls.d.ts","sourceRoot":"","sources":["../../src/media/urls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAWxF,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;CAOV,CAAC;AAEX,eAAO,MAAM,cAAc,EAAE,UAAgB,CAAC;AAG9C,eAAO,MAAM,iBAAiB,aAU5B,CAAC;AAEH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvD;AAMD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAIjE;AAkBD,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,KAAK,MAAM,CAAC;AAE3E,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GAAG,IAAI,GAC3B,gBAAgB,CAUlB;AAWD,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,YAAY,GAAG,gBAAgB,CAEjF;AAMD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,UAAU,EAClB,MAAM,GAAE,UAAU,GAAG,MAAe,GACnC,MAAM,CAQR;AAWD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,GAAG,mBAAmB,CA+ChG"}
|
package/dist/media/urls.js
CHANGED
|
@@ -28,6 +28,22 @@ export function makeAssetUrl(cdnUrl, path) {
|
|
|
28
28
|
return path;
|
|
29
29
|
return `${cdnUrl}/${path.replace(/^\/+/, '')}`;
|
|
30
30
|
}
|
|
31
|
+
export function createAssetUrlResolver(cdnUrl, channelPrefix) {
|
|
32
|
+
return (path) => {
|
|
33
|
+
if (!path)
|
|
34
|
+
return '';
|
|
35
|
+
if (path.startsWith('http://') || path.startsWith('https://'))
|
|
36
|
+
return path;
|
|
37
|
+
let clean = path.replace(/^\/+/, '');
|
|
38
|
+
if (channelPrefix && clean.startsWith(channelPrefix)) {
|
|
39
|
+
clean = clean.slice(channelPrefix.length);
|
|
40
|
+
}
|
|
41
|
+
return makeAssetUrl(cdnUrl, clean);
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export function createContextAssetUrlResolver(ctx) {
|
|
45
|
+
return createAssetUrlResolver(ctx.cdnUrl, ctx.channelCdnDomain ? `${ctx.channel.code}/` : null);
|
|
46
|
+
}
|
|
31
47
|
export function getPresetUrl(asset, preset, format = 'webp') {
|
|
32
48
|
const presets = asset.presets;
|
|
33
49
|
if (!presets)
|
package/dist/media/urls.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urls.js","sourceRoot":"","sources":["../../src/media/urls.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"urls.js","sourceRoot":"","sources":["../../src/media/urls.ts"],"names":[],"mappings":"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"}
|
package/dist/seo/canonical.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { SeoEntityInput } from './types.js';
|
|
1
|
+
import type { CollectionForSeo, ProductForSeo, SeoEntityInput } from './types.js';
|
|
2
2
|
import { type UrlStrategyConfig } from './url-builder.js';
|
|
3
|
+
export declare function pickCanonicalRoot(product: ProductForSeo): CollectionForSeo | null;
|
|
3
4
|
export declare function canonicalFor(cfg: UrlStrategyConfig, entity: SeoEntityInput, locale?: string): string;
|
|
4
5
|
//# sourceMappingURL=canonical.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical.d.ts","sourceRoot":"","sources":["../../src/seo/canonical.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"canonical.d.ts","sourceRoot":"","sources":["../../src/seo/canonical.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAiB,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjG,OAAO,EAA+B,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAiBvF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,gBAAgB,GAAG,IAAI,CAQjF;AA4ED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,cAAc,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAUR"}
|
package/dist/seo/canonical.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
return
|
|
1
|
+
import { isUserFacingRoot, normalizeProductPathSegment, pickCanonicalRootIndex, } from './product-path.js';
|
|
2
|
+
import { buildUrl, commercePrefixFor } from './url-builder.js';
|
|
3
|
+
export function pickCanonicalRoot(product) {
|
|
4
|
+
const candidates = product.collections.filter((c) => c.customFields?.isCanonical === true && isUserFacingRoot(c));
|
|
5
|
+
const index = pickCanonicalRootIndex(candidates.map((c) => ({ position: c.position ?? 0, tiebreak: String(c.id) })));
|
|
6
|
+
return index === null ? null : (candidates[index] ?? null);
|
|
7
7
|
}
|
|
8
8
|
function pickTranslatedSlug(translations, fallback, locale, defaultLanguageCode) {
|
|
9
9
|
if (!translations || translations.length === 0)
|
|
@@ -16,19 +16,20 @@ function pickTranslatedSlug(translations, fallback, locale, defaultLanguageCode)
|
|
|
16
16
|
}
|
|
17
17
|
function canonicalForProduct(cfg, product, locale) {
|
|
18
18
|
const productSlug = pickTranslatedSlug(product.translations, product.slug, locale, cfg.defaultLanguageCode);
|
|
19
|
+
const prefix = commercePrefixFor(cfg, locale);
|
|
19
20
|
const root = pickCanonicalRoot(product);
|
|
20
21
|
if (!root) {
|
|
21
|
-
return buildUrl(cfg, [
|
|
22
|
+
return buildUrl(cfg, [prefix, normalizeProductPathSegment(cfg.productPathSegment), productSlug], locale);
|
|
22
23
|
}
|
|
23
24
|
const rootSlug = pickTranslatedSlug(root.translations, root.slug, locale, cfg.defaultLanguageCode);
|
|
24
|
-
return buildUrl(cfg, [rootSlug, productSlug], locale);
|
|
25
|
+
return buildUrl(cfg, [prefix, rootSlug, productSlug], locale);
|
|
25
26
|
}
|
|
26
27
|
function canonicalForCollection(cfg, collection, locale) {
|
|
27
28
|
if (collection.customFields?.isRoutable === false) {
|
|
28
29
|
return buildUrl(cfg, [], locale);
|
|
29
30
|
}
|
|
30
31
|
const slug = pickTranslatedSlug(collection.translations, collection.slug, locale, cfg.defaultLanguageCode);
|
|
31
|
-
return buildUrl(cfg, [slug], locale);
|
|
32
|
+
return buildUrl(cfg, [commercePrefixFor(cfg, locale), slug], locale);
|
|
32
33
|
}
|
|
33
34
|
function canonicalForCms(cfg, cms, locale) {
|
|
34
35
|
const translated = cms.slug_translations?.[locale];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical.js","sourceRoot":"","sources":["../../src/seo/canonical.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"canonical.js","sourceRoot":"","sources":["../../src/seo/canonical.ts"],"names":[],"mappings":"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"}
|
package/dist/seo/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export type { CmsMetaTagsInput, CmsSeoExtras, CollectionMetaTagsInput, Collectio
|
|
|
6
6
|
export type { RawCmsSeo, RawCollectionSeo, RawProductMetadata } from './metadata-parser.js';
|
|
7
7
|
export { parseCmsItemMetadata, parseCollectionMetadata, parseProductMetadata, robotsFromFlags, } from './metadata-parser.js';
|
|
8
8
|
export type { BotDirective, BreadcrumbOverrideEntry, CmsItemMetadata, CollectionMetadata, CommonSeoMetadata, HreflangOverrideEntry, MetaRobots, MetaRobotsFollowDirective, MetaRobotsIndexDirective, MetaRobotsMaxImagePreview, ProductMetadata, ProductMetadataAi, ProductMetadataSocial, ProductMetadataTwitter, QAPair, SocialOgType, TwitterCardType, } from './metadata-types.js';
|
|
9
|
+
export { DEFAULT_PRODUCT_PATH_SEGMENT, isUserFacingRoot, normalizeProductPathSegment, pickCanonicalRootIndex, } from './product-path.js';
|
|
9
10
|
export type { PerBotDirectives, RobotsMetaTag, RobotsXRobotsHeader, } from './robots.js';
|
|
10
11
|
export type { CollectionForSeo, HreflangLink, ProductForSeo, SeoEntityInput, SeoMeta, SeoModule, UrlLocaleStrategy, } from './types.js';
|
|
11
12
|
export type { UrlStrategyConfig } from './url-builder.js';
|
package/dist/seo/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/seo/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/seo/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAOhD,OAAO,KAAK,EAAkB,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5D,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,GAAG,SAAS,CAyE5D;AAED,YAAY,EACV,cAAc,EACd,iBAAiB,GAClB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,GACX,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,YAAY,EACZ,uBAAuB,EACvB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,MAAM,EACN,YAAY,EACZ,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,4BAA4B,EAC5B,gBAAgB,EAChB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,OAAO,EACP,SAAS,EACT,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/seo/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createContextAssetUrlResolver } from '../media/urls.js';
|
|
1
2
|
import { aiSummaryFor, llmsTxtEntryFor } from './ai.js';
|
|
2
3
|
import { alternatesFor } from './alternates.js';
|
|
3
4
|
import { createArtifactUrls, reportNotFound } from './artifacts.js';
|
|
@@ -7,6 +8,7 @@ import { composePerBotDirectives } from './robots.js';
|
|
|
7
8
|
import { buildUrl, readUrlStrategy } from './url-builder.js';
|
|
8
9
|
export function createSeoModule(ctx) {
|
|
9
10
|
const artifacts = createArtifactUrls(ctx);
|
|
11
|
+
const resolveAssetUrl = createContextAssetUrlResolver(ctx);
|
|
10
12
|
return {
|
|
11
13
|
sitemapUrl: artifacts.sitemapUrl,
|
|
12
14
|
robotsUrl: artifacts.robotsUrl,
|
|
@@ -39,7 +41,7 @@ export function createSeoModule(ctx) {
|
|
|
39
41
|
},
|
|
40
42
|
metaTagsFor(entity) {
|
|
41
43
|
const cfg = readUrlStrategy(ctx);
|
|
42
|
-
return metaTagsFor({ cfg, channel: ctx.channel }, entity);
|
|
44
|
+
return metaTagsFor({ cfg, channel: ctx.channel, resolveAssetUrl }, entity);
|
|
43
45
|
},
|
|
44
46
|
robotsDirectiveFor(entity) {
|
|
45
47
|
if (entity.kind === 'product') {
|
|
@@ -73,5 +75,6 @@ export function createSeoModule(ctx) {
|
|
|
73
75
|
};
|
|
74
76
|
}
|
|
75
77
|
export { parseCmsItemMetadata, parseCollectionMetadata, parseProductMetadata, robotsFromFlags, } from './metadata-parser.js';
|
|
78
|
+
export { DEFAULT_PRODUCT_PATH_SEGMENT, isUserFacingRoot, normalizeProductPathSegment, pickCanonicalRootIndex, } from './product-path.js';
|
|
76
79
|
export { buildUrl, readUrlStrategy } from './url-builder.js';
|
|
77
80
|
//# sourceMappingURL=index.js.map
|
package/dist/seo/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/seo/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/seo/index.ts"],"names":[],"mappings":"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"}
|
package/dist/seo/json-ld.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import type { AssetUrlResolver } from '../media/urls.js';
|
|
1
2
|
import type { Asset } from '../types.js';
|
|
2
3
|
import type { ProductSeoExtras } from './meta-tags.js';
|
|
3
4
|
import type { BreadcrumbOverrideEntry, ProductMetadata, QAPair } from './metadata-types.js';
|
|
4
5
|
import type { ProductForSeo } from './types.js';
|
|
5
6
|
import type { UrlStrategyConfig } from './url-builder.js';
|
|
6
7
|
export interface ProductJsonLdInput {
|
|
8
|
+
resolveAssetUrl: AssetUrlResolver;
|
|
7
9
|
product: ProductForSeo;
|
|
8
10
|
metadata: ProductMetadata | null;
|
|
9
11
|
canonical: string;
|
|
@@ -27,6 +29,7 @@ export interface PageJsonLdInput {
|
|
|
27
29
|
title: string;
|
|
28
30
|
description: string;
|
|
29
31
|
image: Asset | null;
|
|
32
|
+
resolveAssetUrl: AssetUrlResolver;
|
|
30
33
|
}
|
|
31
34
|
export declare function composeCollectionJsonLd(input: PageJsonLdInput): Record<string, unknown>;
|
|
32
35
|
export declare function composeCmsJsonLd(input: PageJsonLdInput): Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-ld.d.ts","sourceRoot":"","sources":["../../src/seo/json-ld.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,KAAK,EAAoB,aAAa,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"json-ld.d.ts","sourceRoot":"","sources":["../../src/seo/json-ld.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,KAAK,EAAoB,aAAa,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAuB1D,MAAM,WAAW,kBAAkB;IAEjC,eAAe,EAAE,gBAAgB,CAAC;IAClC,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC9D;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyDvF;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,iBAAiB,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;CAClD;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkB7F;AAqCD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB,eAAe,EAAE,gBAAgB,CAAC;CACnC;AAYD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWvF;AAGD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWhF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUtF"}
|
package/dist/seo/json-ld.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { canonicalFor } from './canonical.js';
|
|
2
|
-
function pickImageUrls(...assets) {
|
|
1
|
+
import { canonicalFor, pickCanonicalRoot } from './canonical.js';
|
|
2
|
+
function pickImageUrls(resolveAssetUrl, ...assets) {
|
|
3
3
|
const urls = [];
|
|
4
4
|
for (const asset of assets) {
|
|
5
5
|
if (!asset)
|
|
6
6
|
continue;
|
|
7
|
-
const
|
|
7
|
+
const raw = asset.presets?.xl?.url ?? asset.presets?.l?.url ?? asset.source;
|
|
8
|
+
const url = resolveAssetUrl(raw);
|
|
8
9
|
if (url && !urls.includes(url))
|
|
9
10
|
urls.push(url);
|
|
10
11
|
}
|
|
@@ -24,7 +25,7 @@ export function composeProductJsonLd(input) {
|
|
|
24
25
|
out.sku = extras.sku;
|
|
25
26
|
if (extras?.brand)
|
|
26
27
|
out.brand = { '@type': 'Brand', name: extras.brand };
|
|
27
|
-
const images = pickImageUrls(metadata?.social.image ?? null, extras?.featuredAsset ?? null);
|
|
28
|
+
const images = pickImageUrls(input.resolveAssetUrl, metadata?.social.image ?? null, extras?.featuredAsset ?? null);
|
|
28
29
|
if (images.length > 0)
|
|
29
30
|
out.image = images.length === 1 ? images[0] : images;
|
|
30
31
|
if (extras?.price) {
|
|
@@ -80,9 +81,7 @@ export function composeBreadcrumbJsonLd(input) {
|
|
|
80
81
|
};
|
|
81
82
|
}
|
|
82
83
|
function breadcrumbItemsFromCollections(cfg, product) {
|
|
83
|
-
const canonicalRoot = product
|
|
84
|
-
.filter((c) => c.customFields?.isCanonical === true && c.parent == null)
|
|
85
|
-
.sort((a, b) => (a.position ?? 0) - (b.position ?? 0))[0];
|
|
84
|
+
const canonicalRoot = pickCanonicalRoot(product);
|
|
86
85
|
const items = [];
|
|
87
86
|
if (canonicalRoot) {
|
|
88
87
|
items.push({
|
|
@@ -99,10 +98,11 @@ function breadcrumbItemsFromCollections(cfg, product) {
|
|
|
99
98
|
function rootLabelFor(collection) {
|
|
100
99
|
return collection.slug;
|
|
101
100
|
}
|
|
102
|
-
function firstImageUrl(image) {
|
|
101
|
+
function firstImageUrl(resolveAssetUrl, image) {
|
|
103
102
|
if (!image)
|
|
104
103
|
return undefined;
|
|
105
|
-
|
|
104
|
+
const raw = image.presets?.xl?.url ?? image.presets?.l?.url ?? image.source;
|
|
105
|
+
return resolveAssetUrl(raw) || undefined;
|
|
106
106
|
}
|
|
107
107
|
export function composeCollectionJsonLd(input) {
|
|
108
108
|
const out = {
|
|
@@ -113,7 +113,7 @@ export function composeCollectionJsonLd(input) {
|
|
|
113
113
|
};
|
|
114
114
|
if (input.description)
|
|
115
115
|
out.description = input.description;
|
|
116
|
-
const img = firstImageUrl(input.image);
|
|
116
|
+
const img = firstImageUrl(input.resolveAssetUrl, input.image);
|
|
117
117
|
if (img)
|
|
118
118
|
out.image = img;
|
|
119
119
|
return out;
|
|
@@ -127,7 +127,7 @@ export function composeCmsJsonLd(input) {
|
|
|
127
127
|
};
|
|
128
128
|
if (input.description)
|
|
129
129
|
out.description = input.description;
|
|
130
|
-
const img = firstImageUrl(input.image);
|
|
130
|
+
const img = firstImageUrl(input.resolveAssetUrl, input.image);
|
|
131
131
|
if (img)
|
|
132
132
|
out.image = img;
|
|
133
133
|
return out;
|