@prenta/core 2.4.0 → 2.5.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.
Files changed (73) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/actions.d.ts.map +1 -1
  3. package/dist/actions.js +5 -1
  4. package/dist/actions.js.map +1 -1
  5. package/dist/ai/plugin-errors.d.ts +4 -0
  6. package/dist/ai/plugin-errors.d.ts.map +1 -0
  7. package/dist/ai/plugin-errors.js +4 -0
  8. package/dist/ai/plugin-errors.js.map +1 -0
  9. package/dist/api/routes/saved-sections.d.ts.map +1 -1
  10. package/dist/api/routes/saved-sections.js +5 -4
  11. package/dist/api/routes/saved-sections.js.map +1 -1
  12. package/dist/api/routes/seo-public.d.ts.map +1 -1
  13. package/dist/api/routes/seo-public.js +7 -0
  14. package/dist/api/routes/seo-public.js.map +1 -1
  15. package/dist/api/routes/seo.d.ts.map +1 -1
  16. package/dist/api/routes/seo.js +21 -6
  17. package/dist/api/routes/seo.js.map +1 -1
  18. package/dist/api/routes/url-resolution.d.ts.map +1 -1
  19. package/dist/api/routes/url-resolution.js +7 -1
  20. package/dist/api/routes/url-resolution.js.map +1 -1
  21. package/dist/client.d.ts +2 -1
  22. package/dist/client.d.ts.map +1 -1
  23. package/dist/client.js +1 -1
  24. package/dist/client.js.map +1 -1
  25. package/dist/config/types.d.ts +9 -0
  26. package/dist/config/types.d.ts.map +1 -1
  27. package/dist/cron/index.d.ts.map +1 -1
  28. package/dist/cron/index.js +7 -1
  29. package/dist/cron/index.js.map +1 -1
  30. package/dist/index.d.ts +3 -3
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +1 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/seo/analysis.d.ts +17 -0
  35. package/dist/seo/analysis.d.ts.map +1 -1
  36. package/dist/seo/analysis.js +63 -17
  37. package/dist/seo/analysis.js.map +1 -1
  38. package/dist/seo/audit-engine.d.ts +2 -0
  39. package/dist/seo/audit-engine.d.ts.map +1 -1
  40. package/dist/seo/audit-engine.js +1 -1
  41. package/dist/seo/audit-engine.js.map +1 -1
  42. package/dist/seo/audit-runner.d.ts.map +1 -1
  43. package/dist/seo/audit-runner.js +5 -3
  44. package/dist/seo/audit-runner.js.map +1 -1
  45. package/dist/seo/document-content.d.ts +9 -0
  46. package/dist/seo/document-content.d.ts.map +1 -1
  47. package/dist/seo/document-content.js +57 -0
  48. package/dist/seo/document-content.js.map +1 -1
  49. package/dist/seo/document-path.d.ts +28 -0
  50. package/dist/seo/document-path.d.ts.map +1 -1
  51. package/dist/seo/document-path.js +61 -2
  52. package/dist/seo/document-path.js.map +1 -1
  53. package/dist/seo/index.d.ts +4 -2
  54. package/dist/seo/index.d.ts.map +1 -1
  55. package/dist/seo/index.js +2 -1
  56. package/dist/seo/index.js.map +1 -1
  57. package/dist/seo/llms-select.d.ts +1 -0
  58. package/dist/seo/llms-select.d.ts.map +1 -1
  59. package/dist/seo/llms-select.js +1 -0
  60. package/dist/seo/llms-select.js.map +1 -1
  61. package/dist/seo/normalize-internal-hrefs.d.ts +11 -9
  62. package/dist/seo/normalize-internal-hrefs.d.ts.map +1 -1
  63. package/dist/seo/normalize-internal-hrefs.js +25 -24
  64. package/dist/seo/normalize-internal-hrefs.js.map +1 -1
  65. package/dist/seo/page-meta.d.ts +3 -1
  66. package/dist/seo/page-meta.d.ts.map +1 -1
  67. package/dist/seo/page-meta.js +14 -10
  68. package/dist/seo/page-meta.js.map +1 -1
  69. package/dist/seo/public-site-url.d.ts +3 -0
  70. package/dist/seo/public-site-url.d.ts.map +1 -1
  71. package/dist/seo/public-site-url.js +16 -6
  72. package/dist/seo/public-site-url.js.map +1 -1
  73. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"public-site-url.d.ts","sourceRoot":"","sources":["../../src/seo/public-site-url.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,OAAO,EAAsC,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE/F,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAA;AAE9D,MAAM,WAAW,mBAAmB;IAClC,qEAAqE;IACrE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,2CAA2C;IAC3C,MAAM,EAAE,mBAAmB,CAAA;CAC5B;AAED,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EAC7C,SAAS,EAAE,kBAAkB,GAAG,IAAI,GACnC,mBAAmB,CAQrB;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAcrF"}
1
+ {"version":3,"file":"public-site-url.d.ts","sourceRoot":"","sources":["../../src/seo/public-site-url.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,OAAO,EAAsC,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC/F,OAAO,EAA8B,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAEzF,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAA;AAE9D,MAAM,WAAW,mBAAmB;IAClC,qEAAqE;IACrE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,2CAA2C;IAC3C,MAAM,EAAE,mBAAmB,CAAA;IAC3B,qDAAqD;IACrD,aAAa,EAAE,mBAAmB,CAAA;CACnC;AAUD,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EAC7C,SAAS,EAAE,kBAAkB,GAAG,IAAI,GACnC,mBAAmB,CAarB;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAerF"}
@@ -1,15 +1,24 @@
1
1
  import { getPrentaConfig } from '../config/runtime.js';
2
2
  import { getDB } from '../db.js';
3
3
  import { applySeoOverrides, getSeoOverrides } from './config-store.js';
4
+ import { resolveTrailingSlashPolicy } from './document-path.js';
5
+ function trailingSlashFromSnapshot(staticCfg, overrides) {
6
+ const effective = applySeoOverrides(staticCfg, overrides)?.seo?.trailingSlash;
7
+ return resolveTrailingSlashPolicy(effective ?? staticCfg?.seo?.trailingSlash);
8
+ }
4
9
  export function resolvePublicSiteUrlFromSnapshot(staticCfg, overrides) {
10
+ const trailingSlash = trailingSlashFromSnapshot(staticCfg, overrides);
5
11
  const staticUrl = trimSiteUrl(staticCfg?.seo?.siteUrl);
6
12
  const overrideUrl = trimSiteUrl(overrides?.site?.siteUrl);
7
13
  if (overrideUrl)
8
- return { siteUrl: overrideUrl, source: 'override' };
14
+ return { siteUrl: overrideUrl, source: 'override', trailingSlash };
9
15
  const effectiveUrl = trimSiteUrl(applySeoOverrides(staticCfg, overrides)?.seo?.siteUrl);
10
- if (effectiveUrl)
11
- return { siteUrl: effectiveUrl, source: staticUrl ? 'config' : null };
12
- return staticUrl ? { siteUrl: staticUrl, source: 'config' } : { siteUrl: null, source: null };
16
+ if (effectiveUrl) {
17
+ return { siteUrl: effectiveUrl, source: staticUrl ? 'config' : null, trailingSlash };
18
+ }
19
+ return staticUrl
20
+ ? { siteUrl: staticUrl, source: 'config', trailingSlash }
21
+ : { siteUrl: null, source: null, trailingSlash };
13
22
  }
14
23
  /**
15
24
  * Resolve the public site origin editors and SEO surfaces should use.
@@ -29,9 +38,10 @@ export async function resolvePublicSiteUrl(db) {
29
38
  catch {
30
39
  // Fall through to static config when the override row can't be read.
31
40
  }
41
+ const trailingSlash = resolveTrailingSlashPolicy(staticCfg?.seo?.trailingSlash);
32
42
  if (staticUrl)
33
- return { siteUrl: staticUrl, source: 'config' };
34
- return { siteUrl: null, source: null };
43
+ return { siteUrl: staticUrl, source: 'config', trailingSlash };
44
+ return { siteUrl: null, source: null, trailingSlash };
35
45
  }
36
46
  function trimSiteUrl(raw) {
37
47
  if (typeof raw !== 'string')
@@ -1 +1 @@
1
- {"version":3,"file":"public-site-url.js","sourceRoot":"","sources":["../../src/seo/public-site-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAA2B,MAAM,mBAAmB,CAAA;AAW/F,MAAM,UAAU,gCAAgC,CAC9C,SAA6C,EAC7C,SAAoC;IAEpC,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IACtD,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IACzD,IAAI,WAAW;QAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;IAEpE,MAAM,YAAY,GAAG,WAAW,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IACvF,IAAI,YAAY;QAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACvF,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AAC/F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EAAY;IACrD,MAAM,SAAS,GAAG,eAAe,EAAE,CAAA;IACnC,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IAEtD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,EAAE,IAAI,KAAK,EAAE,CAAA;QACjC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAA;QACpD,OAAO,gCAAgC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;IACvE,CAAC;IAED,IAAI,SAAS;QAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;IAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AACxC,CAAC;AAED,SAAS,WAAW,CAAC,GAAY;IAC/B,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC9C,OAAO,OAAO,IAAI,IAAI,CAAA;AACxB,CAAC"}
1
+ {"version":3,"file":"public-site-url.js","sourceRoot":"","sources":["../../src/seo/public-site-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAA2B,MAAM,mBAAmB,CAAA;AAC/F,OAAO,EAAE,0BAA0B,EAA4B,MAAM,oBAAoB,CAAA;AAazF,SAAS,yBAAyB,CAChC,SAA6C,EAC7C,SAAoC;IAEpC,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,CAAA;IAC7E,OAAO,0BAA0B,CAAC,SAAS,IAAI,SAAS,EAAE,GAAG,EAAE,aAAa,CAAC,CAAA;AAC/E,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,SAA6C,EAC7C,SAAoC;IAEpC,MAAM,aAAa,GAAG,yBAAyB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IACrE,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IACtD,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IACzD,IAAI,WAAW;QAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,CAAA;IAEnF,MAAM,YAAY,GAAG,WAAW,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IACvF,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,CAAA;IACtF,CAAC;IACD,OAAO,SAAS;QACd,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE;QACzD,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAA;AACpD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EAAY;IACrD,MAAM,SAAS,GAAG,eAAe,EAAE,CAAA;IACnC,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IAEtD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,EAAE,IAAI,KAAK,EAAE,CAAA;QACjC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAA;QACpD,OAAO,gCAAgC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;IACvE,CAAC;IAED,MAAM,aAAa,GAAG,0BAA0B,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,CAAC,CAAA;IAC/E,IAAI,SAAS;QAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAA;IAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAA;AACvD,CAAC;AAED,SAAS,WAAW,CAAC,GAAY;IAC/B,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC9C,OAAO,OAAO,IAAI,IAAI,CAAA;AACxB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prenta/core",
3
- "version": "2.4.0",
3
+ "version": "2.5.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",