@proxima-io/storefront-core 0.8.1 → 0.8.2

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 CHANGED
@@ -188,6 +188,51 @@ const seo = buildPageSeo(composition.seo, website, website.locale, canonicalUrl)
188
188
  // seo.title, seo.description, seo.ogImage, seo.canonicalUrl, seo.robots, …
189
189
  ```
190
190
 
191
+ ### `buildCanonicalUrl` / `buildHreflangAlternates`
192
+
193
+ Helpers for locale-prefix routing (default locale omits prefix; others use `/{locale}{path}`):
194
+
195
+ ```ts
196
+ import { buildCanonicalUrl, buildHreflangAlternates } from "@proxima-io/storefront-core";
197
+
198
+ const canonical = buildCanonicalUrl(website.domain, locale, "/catalogo", website.default_locale);
199
+ const alternates = buildHreflangAlternates({
200
+ domain: website.domain,
201
+ localizedPaths: { es: "/catalogo", en: "/catalog" },
202
+ enabledLocales: website.enabled_locales,
203
+ defaultLocale: website.default_locale,
204
+ });
205
+ // → <link rel="canonical" /> + <link rel="alternate" hreflang="…" />
206
+ ```
207
+
208
+ `fetchProximaRender` accepts optional `locale` — forwarded as `?locale=` and `Accept-Language`.
209
+
210
+ ### `buildEnginePageUrl` / `buildEnginePageHreflangAlternates`
211
+
212
+ For engine pages (`product_detail`, `category_detail`, …) with `{slug}` templates:
213
+
214
+ ```ts
215
+ import {
216
+ buildEnginePageHreflangAlternates,
217
+ buildEnginePageUrl,
218
+ } from "@proxima-io/storefront-core";
219
+
220
+ const paths = { es: "/producto/{slug}", en: "/product/{slug}" };
221
+ const canonical = buildEnginePageUrl(domain, "en", paths, { slug: "g502" }, "es");
222
+ // → https://shop.test/en/product/g502
223
+
224
+ const alternates = buildEnginePageHreflangAlternates({
225
+ domain,
226
+ localizedPaths: paths,
227
+ enabledLocales: ["es", "en"],
228
+ defaultLocale: "es",
229
+ routeParams: { slug: "g502" },
230
+ });
231
+ ```
232
+
233
+ `generateSitemapXml` emits bilingual catalog URLs when `website.pages[]` includes
234
+ `localized_paths` for `product_detail`, `category_detail`, and `brand_detail`.
235
+
191
236
  ### JSON-LD builders (schema.org)
192
237
 
193
238
  ```ts
@@ -70,5 +70,7 @@ export declare function fetchProximaComposition(config: ProximaApiConfig, websit
70
70
  export declare function fetchProximaRender(config: Pick<ProximaApiConfig, 'baseUrl' | 'domain' | 'path' | 'serviceKey'> & {
71
71
  /** Override domain for dev/testing (maps to ?domain= query param). */
72
72
  host?: string;
73
+ /** Active locale for composition + SEO resolution. */
74
+ locale?: string;
73
75
  }): Promise<ProximaRenderResponse>;
74
76
  //# sourceMappingURL=website.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"website.d.ts","sourceRoot":"","sources":["../../src/cms/website.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACV,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAE9B,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,YAAY,CAAC,EACxD,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,yBAAyB,CAAC,CAMpC;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,YAAY,CAAC,EACxD,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAM/B;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,YAAY,CAAC,EACxD,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAOpC;AAED,+FAA+F;AAC/F,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,YAAY,CAAC,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAKzI;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACtF,OAAO,CAAC,sBAAsB,CAAC,CAMjC;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC,GACpE,sBAAsB,CAoBxB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,0BAA0B,CAAC,CAoBrC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAY,CAAC,GAAG;IAC7E,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACA,OAAO,CAAC,qBAAqB,CAAC,CAShC"}
1
+ {"version":3,"file":"website.d.ts","sourceRoot":"","sources":["../../src/cms/website.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACV,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAE9B,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,YAAY,CAAC,EACxD,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,yBAAyB,CAAC,CAMpC;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,YAAY,CAAC,EACxD,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAM/B;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,YAAY,CAAC,EACxD,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAOpC;AAED,+FAA+F;AAC/F,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,YAAY,CAAC,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAKzI;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACtF,OAAO,CAAC,sBAAsB,CAAC,CAMjC;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC,GACpE,sBAAsB,CAoBxB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,0BAA0B,CAAC,CAoBrC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAY,CAAC,GAAG;IAC7E,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,qBAAqB,CAAC,CAWhC"}
@@ -137,7 +137,9 @@ export async function fetchProximaRender(config) {
137
137
  query: {
138
138
  path: config.path,
139
139
  domain: config.host ?? config.domain,
140
+ ...(config.locale ? { locale: config.locale } : {}),
140
141
  },
142
+ ...(config.locale ? { locale: config.locale } : {}),
141
143
  failPrefix: 'Render fetch failed',
142
144
  });
143
145
  }
@@ -1 +1 @@
1
- {"version":3,"file":"website.js","sourceRoot":"","sources":["../../src/cms/website.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"website.js","sourceRoot":"","sources":["../../src/cms/website.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAY9E,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAwD,EACxD,UAAkB;IAElB,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,GAAG,CAA4B,mBAAmB,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE;QACnF,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;QAClC,UAAU,EAAE,+BAA+B;KAC5C,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAwD,EACxD,UAAkB;IAElB,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,GAAG,CAAuB,mBAAmB,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE;QAC5E,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;QAClC,UAAU,EAAE,wBAAwB;KACrC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAwD,EACxD,UAAkB,EAClB,IAAY;IAEZ,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,GAAG,CAA4B,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACvF,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;QAClC,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,uBAAuB;KACpC,CAAC,CAAC;AACL,CAAC;AAED,+FAA+F;AAC/F,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,MAAwD;IACpG,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,GAAG,CAA2B,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;QAC9E,UAAU,EAAE,qBAAqB;KAClC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAuF;IAEvF,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,GAAG,CAAyB,mBAAmB,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE;QAClF,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE;QAC7C,UAAU,EAAE,wBAAwB;KACrC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAqE;IAErE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,SAAS;QACpB,WAAW,EAAE,MAAM,CAAC,UAAU;QAC9B,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,aAAa,EAAE,gBAAgB;QAC/B,YAAY,EAAE,WAAW;QACzB,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,EAAE;QAChB,gBAAgB,EAAE,EAAE;QACpB,KAAK,EAAE,EAAE;KACV,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAwB,EACxB,OAA+B;IAE/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;IAC3C,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,GAAG,CACf,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,EAC/C;QACE,UAAU,EAAE,OAAO,CAAC,WAAW;QAC/B,MAAM;QACN,QAAQ;QACR,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM;YACN,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,aAAa,EAAE,MAAM,CAAC,YAAY;SACnC;QACD,UAAU,EAAE,oBAAoB;KACjC,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAKC;IAED,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,GAAG,CAAwB,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE;QACzE,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM;YACpC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpD;QACD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,UAAU,EAAE,qBAAqB;KAClC,CAAC,CAAC;AACL,CAAC"}
package/dist/index.d.ts CHANGED
@@ -14,6 +14,8 @@ export * from './types/campaign.js';
14
14
  export * from './types/analytics.js';
15
15
  export * from './types/cookie-consent.js';
16
16
  export * from './api/index.js';
17
+ export * from './seo/hreflang.js';
18
+ export * from './seo/engine-url.js';
17
19
  export * from './seo/page-seo.js';
18
20
  export * from './seo/json-ld.js';
19
21
  export * from './seo/sitemap.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,gBAAgB,CAAC;AAE/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAElC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,wBAAwB,CAAC;AAEvC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,yBAAyB,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,YAAY,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;AAC5E,YAAY,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAE3E,cAAc,6BAA6B,CAAC;AAE5C,cAAc,kBAAkB,CAAC;AAEjC,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,EACrB,qCAAqC,EACrC,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,EACnB,kCAAkC,EAClC,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,gBAAgB,CAAC;AAE/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAElC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,wBAAwB,CAAC;AAEvC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,yBAAyB,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,YAAY,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;AAC5E,YAAY,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAE3E,cAAc,6BAA6B,CAAC;AAE5C,cAAc,kBAAkB,CAAC;AAEjC,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,EACrB,qCAAqC,EACrC,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,EACnB,kCAAkC,EAClC,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -15,6 +15,8 @@ export * from './types/campaign.js';
15
15
  export * from './types/analytics.js';
16
16
  export * from './types/cookie-consent.js';
17
17
  export * from './api/index.js';
18
+ export * from './seo/hreflang.js';
19
+ export * from './seo/engine-url.js';
18
20
  export * from './seo/page-seo.js';
19
21
  export * from './seo/json-ld.js';
20
22
  export * from './seo/sitemap.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAElD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,gBAAgB,CAAC;AAE/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAElC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,wBAAwB,CAAC;AAEvC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,yBAAyB,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;AAG5E,cAAc,6BAA6B,CAAC;AAE5C,cAAc,kBAAkB,CAAC;AAEjC,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,EACrB,qCAAqC,EACrC,sBAAsB,GACvB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAElD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,gBAAgB,CAAC;AAE/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAElC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,wBAAwB,CAAC;AAEvC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,yBAAyB,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;AAG5E,cAAc,6BAA6B,CAAC;AAE5C,cAAc,kBAAkB,CAAC;AAEjC,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,EACrB,qCAAqC,EACrC,sBAAsB,GACvB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { type HreflangAlternate } from './hreflang.js';
2
+ import type { SitemapWebsiteMeta } from '../types/seo.js';
3
+ /** Replace `{param}` segments in a path template with concrete values. */
4
+ export declare function fillPathTemplate(template: string, params: Record<string, string>): string;
5
+ /** Match a request path against a template; returns captured params or null. */
6
+ export declare function matchPathTemplate(template: string, path: string): Record<string, string> | null;
7
+ /** Validate that all locale templates share the same placeholder names. */
8
+ export declare function validateEnginePathPlaceholders(localizedPaths: Record<string, string>): string | null;
9
+ export declare function findWebsitePageByResolver(pages: SitemapWebsiteMeta['pages'], resolverKind: string): {
10
+ resolver_kind: string;
11
+ path?: string | null;
12
+ localized_paths?: Record<string, string> | null;
13
+ } | null;
14
+ /** Build an absolute URL for an engine page (PDP, PLP, category, brand). */
15
+ export declare function buildEnginePageUrl(domain: string, locale: string, localizedPaths: Record<string, string>, routeParams: Record<string, string>, defaultLocale: string): string;
16
+ /** Hreflang alternates for engine pages that share route params across locales. */
17
+ export declare function buildEnginePageHreflangAlternates(options: {
18
+ domain: string;
19
+ localizedPaths: Record<string, string>;
20
+ enabledLocales: string[];
21
+ defaultLocale: string;
22
+ routeParams: Record<string, string>;
23
+ }): HreflangAlternate[];
24
+ /** Slug from a catalog nav href such as `/categoria/foo`. */
25
+ export declare function slugFromCatalogHref(href: string, segment: string): string | null;
26
+ //# sourceMappingURL=engine-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-url.d.ts","sourceRoot":"","sources":["../../src/seo/engine-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAU1D,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,MAAM,CAUR;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAwB/B;AAOD,2EAA2E;AAC3E,wBAAgB,8BAA8B,CAC5C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,MAAM,GAAG,IAAI,CAkBf;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAClC,YAAY,EAAE,MAAM;;;;SAGrB;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACtC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,aAAa,EAAE,MAAM,GACpB,MAAM,CAQR;AAED,mFAAmF;AACnF,wBAAgB,iCAAiC,CAAC,OAAO,EAAE;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC,GAAG,iBAAiB,EAAE,CA4BtB;AAED,6DAA6D;AAC7D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKhF"}
@@ -0,0 +1,111 @@
1
+ import { buildCanonicalUrl } from './hreflang.js';
2
+ function normalizePath(path) {
3
+ const trimmed = (path || '').trim();
4
+ if (!trimmed || trimmed === '/')
5
+ return '/';
6
+ const withSlash = trimmed.startsWith('/') ? trimmed : `/${trimmed}`;
7
+ const stripped = withSlash.replace(/\/+$/, '');
8
+ return stripped || '/';
9
+ }
10
+ /** Replace `{param}` segments in a path template with concrete values. */
11
+ export function fillPathTemplate(template, params) {
12
+ return normalizePath(template.replace(/\{([^{}]+)\}/g, (_, key) => {
13
+ const value = params[key];
14
+ if (value === undefined) {
15
+ throw new Error(`Missing path param '${key}' for template '${template}'`);
16
+ }
17
+ return value;
18
+ }));
19
+ }
20
+ /** Match a request path against a template; returns captured params or null. */
21
+ export function matchPathTemplate(template, path) {
22
+ const normalizedTemplate = normalizePath(template);
23
+ const normalizedPath = normalizePath(path);
24
+ if (!normalizedTemplate.includes('{')) {
25
+ return normalizedTemplate === normalizedPath ? {} : null;
26
+ }
27
+ const templateSegments = normalizedTemplate.split('/').filter(Boolean);
28
+ const pathSegments = normalizedPath.split('/').filter(Boolean);
29
+ if (templateSegments.length !== pathSegments.length)
30
+ return null;
31
+ const params = {};
32
+ for (let i = 0; i < templateSegments.length; i++) {
33
+ const templateSegment = templateSegments[i];
34
+ const pathSegment = pathSegments[i];
35
+ const match = templateSegment.match(/^\{([^{}]+)\}$/);
36
+ if (match) {
37
+ params[match[1]] = pathSegment;
38
+ continue;
39
+ }
40
+ if (templateSegment !== pathSegment)
41
+ return null;
42
+ }
43
+ return params;
44
+ }
45
+ function extractPlaceholders(template) {
46
+ const names = template.match(/\{([^{}]+)\}/g) ?? [];
47
+ return new Set(names.map((token) => token.slice(1, -1)));
48
+ }
49
+ /** Validate that all locale templates share the same placeholder names. */
50
+ export function validateEnginePathPlaceholders(localizedPaths) {
51
+ const locales = Object.keys(localizedPaths);
52
+ if (locales.length === 0)
53
+ return null;
54
+ let reference = null;
55
+ for (const locale of locales) {
56
+ const placeholders = extractPlaceholders(localizedPaths[locale] ?? '');
57
+ if (reference === null) {
58
+ reference = placeholders;
59
+ continue;
60
+ }
61
+ const ref = [...reference].sort().join(',');
62
+ const cur = [...placeholders].sort().join(',');
63
+ if (ref !== cur) {
64
+ return `Placeholder mismatch for locale '${locale}': expected {${ref}}, got {${cur}}`;
65
+ }
66
+ }
67
+ return null;
68
+ }
69
+ export function findWebsitePageByResolver(pages, resolverKind) {
70
+ return pages?.find((page) => page.resolver_kind === resolverKind) ?? null;
71
+ }
72
+ /** Build an absolute URL for an engine page (PDP, PLP, category, brand). */
73
+ export function buildEnginePageUrl(domain, locale, localizedPaths, routeParams, defaultLocale) {
74
+ const template = localizedPaths[locale] ?? localizedPaths[defaultLocale];
75
+ if (!template) {
76
+ throw new Error(`No path template for locale '${locale}'`);
77
+ }
78
+ const logicalPath = fillPathTemplate(template, routeParams);
79
+ return buildCanonicalUrl(domain, locale, logicalPath, defaultLocale);
80
+ }
81
+ /** Hreflang alternates for engine pages that share route params across locales. */
82
+ export function buildEnginePageHreflangAlternates(options) {
83
+ const { domain, localizedPaths, enabledLocales, defaultLocale, routeParams } = options;
84
+ const alternates = [];
85
+ for (const locale of enabledLocales) {
86
+ const template = localizedPaths[locale] ?? localizedPaths[defaultLocale];
87
+ if (!template)
88
+ continue;
89
+ alternates.push({
90
+ hreflang: locale,
91
+ href: buildEnginePageUrl(domain, locale, localizedPaths, routeParams, defaultLocale),
92
+ });
93
+ }
94
+ const defaultTemplate = localizedPaths[defaultLocale];
95
+ if (defaultTemplate) {
96
+ alternates.push({
97
+ hreflang: 'x-default',
98
+ href: buildEnginePageUrl(domain, defaultLocale, localizedPaths, routeParams, defaultLocale),
99
+ });
100
+ }
101
+ return alternates;
102
+ }
103
+ /** Slug from a catalog nav href such as `/categoria/foo`. */
104
+ export function slugFromCatalogHref(href, segment) {
105
+ const prefix = `/${segment}/`;
106
+ if (!href.startsWith(prefix))
107
+ return null;
108
+ const slug = href.slice(prefix.length).split('/')[0];
109
+ return slug || null;
110
+ }
111
+ //# sourceMappingURL=engine-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-url.js","sourceRoot":"","sources":["../../src/seo/engine-url.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export interface HreflangAlternate {
2
+ hreflang: string;
3
+ href: string;
4
+ }
5
+ /**
6
+ * Build an absolute canonical URL with locale-prefix routing.
7
+ * Default locale omits the prefix; others use `/{locale}{path}`.
8
+ */
9
+ export declare function buildCanonicalUrl(domain: string, locale: string, path: string, defaultLocale: string): string;
10
+ /**
11
+ * Build hreflang alternate links for a CMS page with localized paths.
12
+ */
13
+ export declare function buildHreflangAlternates(options: {
14
+ domain: string;
15
+ localizedPaths: Record<string, string>;
16
+ enabledLocales: string[];
17
+ defaultLocale: string;
18
+ }): HreflangAlternate[];
19
+ //# sourceMappingURL=hreflang.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hreflang.d.ts","sourceRoot":"","sources":["../../src/seo/hreflang.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAeD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GACpB,MAAM,CAUR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,iBAAiB,EAAE,CAsBtB"}
@@ -0,0 +1,52 @@
1
+ function normalizePath(path) {
2
+ const trimmed = (path || "").trim();
3
+ if (!trimmed || trimmed === "/")
4
+ return "/";
5
+ return trimmed.startsWith("/") ? trimmed : `/${trimmed}`;
6
+ }
7
+ function siteOrigin(domain) {
8
+ if (domain.startsWith("http://") || domain.startsWith("https://")) {
9
+ return domain.replace(/\/$/, "");
10
+ }
11
+ return `https://${domain.replace(/\/$/, "")}`;
12
+ }
13
+ /**
14
+ * Build an absolute canonical URL with locale-prefix routing.
15
+ * Default locale omits the prefix; others use `/{locale}{path}`.
16
+ */
17
+ export function buildCanonicalUrl(domain, locale, path, defaultLocale) {
18
+ const normalizedPath = normalizePath(path);
19
+ const origin = siteOrigin(domain);
20
+ if (locale === defaultLocale) {
21
+ return `${origin}${normalizedPath}`;
22
+ }
23
+ if (normalizedPath === "/") {
24
+ return `${origin}/${locale}`;
25
+ }
26
+ return `${origin}/${locale}${normalizedPath}`;
27
+ }
28
+ /**
29
+ * Build hreflang alternate links for a CMS page with localized paths.
30
+ */
31
+ export function buildHreflangAlternates(options) {
32
+ const { domain, localizedPaths, enabledLocales, defaultLocale } = options;
33
+ const alternates = [];
34
+ for (const locale of enabledLocales) {
35
+ const path = localizedPaths[locale] ?? localizedPaths[defaultLocale];
36
+ if (!path)
37
+ continue;
38
+ alternates.push({
39
+ hreflang: locale,
40
+ href: buildCanonicalUrl(domain, locale, path, defaultLocale),
41
+ });
42
+ }
43
+ const defaultPath = localizedPaths[defaultLocale];
44
+ if (defaultPath) {
45
+ alternates.push({
46
+ hreflang: "x-default",
47
+ href: buildCanonicalUrl(domain, defaultLocale, defaultPath, defaultLocale),
48
+ });
49
+ }
50
+ return alternates;
51
+ }
52
+ //# sourceMappingURL=hreflang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hreflang.js","sourceRoot":"","sources":["../../src/seo/hreflang.ts"],"names":[],"mappings":"AAKA,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,GAAG,CAAC;IAC5C,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,UAAU,CAAC,MAAc;IAChC,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAClE,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,WAAW,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAc,EACd,MAAc,EACd,IAAY,EACZ,aAAqB;IAErB,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,OAAO,GAAG,MAAM,GAAG,cAAc,EAAE,CAAC;IACtC,CAAC;IACD,IAAI,cAAc,KAAK,GAAG,EAAE,CAAC;QAC3B,OAAO,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO,GAAG,MAAM,IAAI,MAAM,GAAG,cAAc,EAAE,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAKvC;IACC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAC1E,MAAM,UAAU,GAAwB,EAAE,CAAC;IAE3C,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,UAAU,CAAC,IAAI,CAAC;YACd,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAClD,IAAI,WAAW,EAAE,CAAC;QAChB,UAAU,CAAC,IAAI,CAAC;YACd,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,CAAC;SAC3E,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -25,6 +25,11 @@ export declare function buildOrganizationJsonLd(website: JsonLdWebsiteMeta): Rec
25
25
  export declare function buildProductJsonLd(product: JsonLdProductMeta, website: {
26
26
  domain: string;
27
27
  currency: string;
28
+ }, options?: {
29
+ productUrl?: string;
30
+ locale?: string;
31
+ localizedPaths?: Record<string, string>;
32
+ defaultLocale?: string;
28
33
  }): Record<string, any>;
29
34
  /**
30
35
  * Build a `BreadcrumbList` JSON-LD object.
@@ -1 +1 @@
1
- {"version":3,"file":"json-ld.d.ts","sourceRoot":"","sources":["../../src/seo/json-ld.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAErH;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAgBlF;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,GACzB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAU5B;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC5C,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA0CrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAarB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,uBAAuB,GAAG,IAAI,GAAG,SAAS,GAC9C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CA6ChC"}
1
+ {"version":3,"file":"json-ld.d.ts","sourceRoot":"","sources":["../../src/seo/json-ld.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGrH;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAgBlF;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,GACzB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAU5B;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAC7C,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GACA,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAqDrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAarB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,uBAAuB,GAAG,IAAI,GAAG,SAAS,GAC9C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CA6ChC"}
@@ -1,3 +1,4 @@
1
+ import { buildEnginePageUrl } from './engine-url.js';
1
2
  /**
2
3
  * Build a `WebSite` JSON-LD object.
3
4
  * Enables Google's Search Action box in SERPs.
@@ -48,9 +49,13 @@ export function buildOrganizationJsonLd(website) {
48
49
  * @example
49
50
  * <script type="application/ld+json" set:html={JSON.stringify(buildProductJsonLd(product, website))} />
50
51
  */
51
- export function buildProductJsonLd(product, website) {
52
+ export function buildProductJsonLd(product, website, options) {
52
53
  const siteUrl = `https://${website.domain}`;
53
- const productUrl = `${siteUrl}/producto/${product.slug}`;
54
+ const defaultLocale = options?.defaultLocale ?? 'es';
55
+ const productUrl = options?.productUrl ??
56
+ (options?.localizedPaths && options.locale
57
+ ? buildEnginePageUrl(website.domain, options.locale, options.localizedPaths, { slug: product.slug }, defaultLocale)
58
+ : `${siteUrl}/producto/${product.slug}`);
54
59
  // Deduplicated image list: primary first, then extras
55
60
  const images = [
56
61
  product.image,
@@ -1 +1 @@
1
- {"version":3,"file":"json-ld.js","sourceRoot":"","sources":["../../src/seo/json-ld.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-ld.js","sourceRoot":"","sources":["../../src/seo/json-ld.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sitemap.d.ts","sourceRoot":"","sources":["../../src/seo/sitemap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AA8C1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACxD,OAAO,CAAC,MAAM,CAAC,CAmEjB"}
1
+ {"version":3,"file":"sitemap.d.ts","sourceRoot":"","sources":["../../src/seo/sitemap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAoD1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACxD,OAAO,CAAC,MAAM,CAAC,CAqIjB"}
@@ -1,3 +1,5 @@
1
+ import { buildCanonicalUrl } from './hreflang.js';
2
+ import { fillPathTemplate, findWebsitePageByResolver, slugFromCatalogHref, } from './engine-url.js';
1
3
  import { fetchBrandsDirectory, fetchCategoryNavTree, fetchStorefrontProducts, } from '../catalog/listings.js';
2
4
  /** Private resolver kinds that must never appear in a sitemap */
3
5
  const SITEMAP_PRIVATE_KINDS = new Set([
@@ -66,15 +68,52 @@ export async function generateSitemapXml(website, apiUrl, options = {}) {
66
68
  const MAX_PAGES = Math.ceil(MAX_PRODUCTS / PAGE_SIZE);
67
69
  const TODAY = new Date().toISOString().split("T")[0];
68
70
  const siteUrl = `https://${website.domain}`;
71
+ const defaultLocale = website.default_locale ?? "es";
72
+ const enabledLocales = website.enabled_locales?.length
73
+ ? website.enabled_locales
74
+ : [defaultLocale];
69
75
  const entries = [];
76
+ function localizedTemplatesFor(resolverKind, fallbackTemplate) {
77
+ const page = findWebsitePageByResolver(website.pages, resolverKind);
78
+ const localizedPaths = page?.localized_paths ?? {};
79
+ const hasLocalized = Object.keys(localizedPaths).length > 0;
80
+ if (!hasLocalized) {
81
+ return [{ locale: defaultLocale, template: page?.path ?? fallbackTemplate }];
82
+ }
83
+ return enabledLocales
84
+ .map((locale) => ({
85
+ locale,
86
+ template: localizedPaths[locale] ?? localizedPaths[defaultLocale] ?? page?.path ?? fallbackTemplate,
87
+ }))
88
+ .filter((item) => Boolean(item.template));
89
+ }
90
+ function pushEngineUrls(resolverKind, fallbackTemplate, slug, priority, changefreq) {
91
+ for (const { locale, template } of localizedTemplatesFor(resolverKind, fallbackTemplate)) {
92
+ const logicalPath = template.includes('{')
93
+ ? fillPathTemplate(template, { slug })
94
+ : template;
95
+ const loc = buildCanonicalUrl(website.domain, locale, logicalPath, defaultLocale);
96
+ entries.push(_urlEntry(loc, priority, changefreq, TODAY));
97
+ }
98
+ }
70
99
  // 1. Content pages from the website manifest
71
100
  for (const page of website.pages ?? []) {
72
101
  if (SITEMAP_PRIVATE_KINDS.has(page.resolver_kind))
73
102
  continue;
74
- if (page.resolver_kind === "content_page" && page.path) {
75
- const priority = page.path === "/" ? "1.0" : "0.8";
76
- const changefreq = page.path === "/" ? "daily" : "weekly";
77
- entries.push(_urlEntry(`${siteUrl}${page.path}`, priority, changefreq, TODAY));
103
+ if (page.resolver_kind !== "content_page")
104
+ continue;
105
+ const localizedPaths = page.localized_paths ?? {};
106
+ const localesToEmit = Object.keys(localizedPaths).length > 0
107
+ ? enabledLocales.filter((locale) => localizedPaths[locale] || page.path)
108
+ : [defaultLocale];
109
+ for (const locale of localesToEmit) {
110
+ const path = localizedPaths[locale] ?? page.path;
111
+ if (!path)
112
+ continue;
113
+ const priority = path === "/" ? "1.0" : "0.8";
114
+ const changefreq = path === "/" ? "daily" : "weekly";
115
+ const loc = buildCanonicalUrl(website.domain, locale, path, defaultLocale);
116
+ entries.push(_urlEntry(loc, priority, changefreq, TODAY));
78
117
  }
79
118
  }
80
119
  // 2. Category pages (recursive nav tree)
@@ -82,7 +121,15 @@ export async function generateSitemapXml(website, apiUrl, options = {}) {
82
121
  const tree = await fetchCategoryNavTree({ baseUrl: apiUrl }, website);
83
122
  function collectHrefs(nodes) {
84
123
  for (const node of nodes) {
85
- entries.push(_urlEntry(`${siteUrl}${node.href}`, "0.8", "daily", TODAY));
124
+ const slug = slugFromCatalogHref(node.href, 'categoria') ??
125
+ slugFromCatalogHref(node.href, 'category') ??
126
+ node.href.split('/').filter(Boolean).pop();
127
+ if (slug) {
128
+ pushEngineUrls('category_detail', '/categoria/{slug}', slug, '0.8', 'daily');
129
+ }
130
+ else {
131
+ entries.push(_urlEntry(`${siteUrl}${node.href}`, '0.8', 'daily', TODAY));
132
+ }
86
133
  if (node.children.length > 0)
87
134
  collectHrefs(node.children);
88
135
  }
@@ -96,7 +143,15 @@ export async function generateSitemapXml(website, apiUrl, options = {}) {
96
143
  try {
97
144
  const brandsResult = await fetchBrandsDirectory({ baseUrl: apiUrl }, website);
98
145
  for (const brand of brandsResult.items) {
99
- entries.push(_urlEntry(`${siteUrl}${brand.href}`, "0.7", "weekly", TODAY));
146
+ const slug = slugFromCatalogHref(brand.href, 'marca') ??
147
+ slugFromCatalogHref(brand.href, 'brand') ??
148
+ brand.slug;
149
+ if (slug) {
150
+ pushEngineUrls('brand_detail', '/marca/{slug}', slug, '0.7', 'weekly');
151
+ }
152
+ else {
153
+ entries.push(_urlEntry(`${siteUrl}${brand.href}`, '0.7', 'weekly', TODAY));
154
+ }
100
155
  }
101
156
  }
102
157
  catch {
@@ -112,7 +167,7 @@ export async function generateSitemapXml(website, apiUrl, options = {}) {
112
167
  pageSize: PAGE_SIZE,
113
168
  });
114
169
  for (const product of result.items) {
115
- entries.push(_urlEntry(`${siteUrl}/producto/${product.slug}`, "0.9", "weekly", TODAY));
170
+ pushEngineUrls('product_detail', '/producto/{slug}', product.slug, '0.9', 'weekly');
116
171
  }
117
172
  totalPages = result.pagination.total_pages;
118
173
  currentPage++;
@@ -1 +1 @@
1
- {"version":3,"file":"sitemap.js","sourceRoot":"","sources":["../../src/seo/sitemap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sitemap.js","sourceRoot":"","sources":["../../src/seo/sitemap.ts"],"names":[],"mappings":"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"}
@@ -118,12 +118,21 @@ export interface ProximaRenderPage {
118
118
  /** True when no page matched the path — treat as 404. */
119
119
  not_found: boolean;
120
120
  }
121
+ export interface ProximaRenderPageSummary {
122
+ name: string;
123
+ path: string;
124
+ localized_paths?: Record<string, string>;
125
+ resolver_kind: string;
126
+ is_active: boolean;
127
+ }
121
128
  export interface ProximaRenderWebsite {
122
129
  id: string;
123
130
  business_id: string;
124
131
  name: string;
125
132
  domain?: string | null;
126
133
  locale: string;
134
+ default_locale?: string;
135
+ enabled_locales?: string[];
127
136
  currency: string;
128
137
  delivery_mode?: string | null;
129
138
  website_kind?: string | null;
@@ -135,12 +144,7 @@ export interface ProximaRenderWebsite {
135
144
  twitter_handle?: string | null;
136
145
  capabilities?: Record<string, any>;
137
146
  animation_config?: Record<string, any>;
138
- pages?: Array<{
139
- name: string;
140
- path: string;
141
- resolver_kind: string;
142
- is_active: boolean;
143
- }>;
147
+ pages?: ProximaRenderPageSummary[];
144
148
  }
145
149
  export interface StorefrontRegFormField {
146
150
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"cms.d.ts","sourceRoot":"","sources":["../../src/types/cms.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cms.d.ts","sourceRoot":"","sources":["../../src/types/cms.ts"],"names":[],"mappings":"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"}
@@ -85,9 +85,12 @@ export interface JsonLdLocalBusinessMeta {
85
85
  }
86
86
  export interface SitemapWebsiteMeta {
87
87
  domain: string;
88
+ default_locale?: string;
89
+ enabled_locales?: string[];
88
90
  pages?: Array<{
89
91
  resolver_kind: string;
90
92
  path?: string | null;
93
+ localized_paths?: Record<string, string> | null;
91
94
  }> | null;
92
95
  }
93
96
  //# sourceMappingURL=seo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../../src/types/seo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../../src/types/seo.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proxima-io/storefront-core",
3
- "version": "0.8.1",
3
+ "version": "0.8.2",
4
4
  "type": "module",
5
5
  "description": "HTTP client for the Proxima API — website resolution, CMS composition, and product listing.",
6
6
  "license": "MIT",