@bagelink/blox 1.17.6 → 1.18.6
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/{PreviewApp-BKrLRDBC.js → PreviewApp-9H9-jLVN.js} +1 -1
- package/dist/{PreviewApp-Kb3uTwtH.cjs → PreviewApp-D8ZBTG0j.cjs} +1 -1
- package/dist/{PreviewApp.vue_vue_type_style_index_0_lang-AC3W0NSJ.cjs → PreviewApp.vue_vue_type_style_index_0_lang-BYCayJs0.cjs} +1 -1
- package/dist/{PreviewApp.vue_vue_type_style_index_0_lang-BMGv1eSR.js → PreviewApp.vue_vue_type_style_index_0_lang-BwiLyRBw.js} +1 -1
- package/dist/{appRuntime-CWlPH_5r.js → appRuntime-DZSCSsnS.js} +39 -156
- package/dist/{appRuntime-BU2Ls-Y7.cjs → appRuntime-Z0AxTPxf.cjs} +17 -134
- package/dist/composables/useLocale.d.ts +3 -0
- package/dist/composables/useLocale.d.ts.map +1 -1
- package/dist/composables/useLocaleNav.d.ts.map +1 -1
- package/dist/createBloxApp.d.ts.map +1 -1
- package/dist/hydration.d.ts +2 -0
- package/dist/hydration.d.ts.map +1 -1
- package/dist/index.cjs +16 -9
- package/dist/index.mjs +44 -36
- package/dist/localeStrategy-OwRIn35C.cjs +207 -0
- package/dist/localeStrategy-hXlNof1E.js +208 -0
- package/dist/localeStrategy.d.ts +21 -0
- package/dist/localeStrategy.d.ts.map +1 -1
- package/dist/{shard-runner-DXjScXLk.cjs → shard-runner-DF3K3Ze_.cjs} +14 -7
- package/dist/{shard-runner-f05p1VMY.js → shard-runner-DFrc8d4O.js} +15 -8
- package/dist/ssg/cli.cjs +9 -2
- package/dist/ssg/cli.mjs +9 -2
- package/dist/ssg/cms-routes.d.ts +7 -0
- package/dist/ssg/cms-routes.d.ts.map +1 -1
- package/dist/ssg/index.cjs +4 -2
- package/dist/ssg/index.mjs +5 -3
- package/dist/ssg/prerender.d.ts +3 -1
- package/dist/ssg/prerender.d.ts.map +1 -1
- package/dist/ssg/render-resolved-page.d.ts +2 -0
- package/dist/ssg/render-resolved-page.d.ts.map +1 -1
- package/dist/ssg/seo.d.ts.map +1 -1
- package/dist/ssg/shard-runner.d.ts +3 -0
- package/dist/ssg/shard-runner.d.ts.map +1 -1
- package/dist/{validate-output-C94Qpxw3.cjs → validate-output-BymMbrA5.cjs} +45 -13
- package/dist/{validate-output-CuX33CnX.js → validate-output-yDJYYYzK.js} +41 -9
- package/package.json +125 -124
- package/LICENSE +0 -21
- package/dist/pageTitle-B1mtDJKn.js +0 -59
- package/dist/pageTitle-wobGhtiZ.cjs +0 -58
|
@@ -26,7 +26,7 @@ const node_child_process = require("node:child_process");
|
|
|
26
26
|
const os = require("node:os");
|
|
27
27
|
const path = require("node:path");
|
|
28
28
|
const process = require("node:process");
|
|
29
|
-
const llmArtifacts = require("./validate-output-
|
|
29
|
+
const llmArtifacts = require("./validate-output-BymMbrA5.cjs");
|
|
30
30
|
const AUTO_SHARD_CAP = Number(process.env.BLOX_SSG_SHARD_CAP) || 6;
|
|
31
31
|
const PREFETCH_BUDGET = Number(process.env.BLOX_SSG_PREFETCH_BUDGET) || 24;
|
|
32
32
|
const SEQUENTIAL_SHARDS = process.env.BLOX_SSG_SEQUENTIAL === "1";
|
|
@@ -39,6 +39,9 @@ function matchesCmsPath(pathname, cmsPaths) {
|
|
|
39
39
|
}
|
|
40
40
|
return false;
|
|
41
41
|
}
|
|
42
|
+
function sitemapRoutesForWebsite(routes, siteNoindex) {
|
|
43
|
+
return siteNoindex ? routes : routes.filter((route) => !route.noindex);
|
|
44
|
+
}
|
|
42
45
|
function resolveShardCount(shards) {
|
|
43
46
|
if (shards === "auto") {
|
|
44
47
|
const cores = os.cpus().length || 4;
|
|
@@ -92,7 +95,7 @@ function runShard(index, total, paths, opts, llmPartsDir, routePartsDir, siteDat
|
|
|
92
95
|
});
|
|
93
96
|
}
|
|
94
97
|
async function runSharded(opts) {
|
|
95
|
-
var _a, _b;
|
|
98
|
+
var _a, _b, _c, _d;
|
|
96
99
|
const total = resolveShardCount(opts.shards);
|
|
97
100
|
const fs = await import("node:fs/promises");
|
|
98
101
|
const paths = [...opts.extraPaths];
|
|
@@ -164,9 +167,9 @@ async function runSharded(opts) {
|
|
|
164
167
|
);
|
|
165
168
|
return failed[0].code;
|
|
166
169
|
}
|
|
167
|
-
if (process.env.BLOX_SSG_LLM !== "0") {
|
|
170
|
+
if (process.env.BLOX_SSG_LLM !== "0" && !((_a = website == null ? void 0 : website.seo) == null ? void 0 : _a.noindex)) {
|
|
168
171
|
try {
|
|
169
|
-
const { mergeLlmParts } = await Promise.resolve().then(() => require("./validate-output-
|
|
172
|
+
const { mergeLlmParts } = await Promise.resolve().then(() => require("./validate-output-BymMbrA5.cjs")).then((n) => n.llmArtifacts);
|
|
170
173
|
const mergeWebsite = website;
|
|
171
174
|
const partFiles = Array.from({ length: total }, (_, i) => path.join(llmPartsDir, `part.${i}.json`));
|
|
172
175
|
const { pages } = await mergeLlmParts({
|
|
@@ -185,8 +188,11 @@ async function runSharded(opts) {
|
|
|
185
188
|
return JSON.parse(await fs.readFile(file, "utf8"));
|
|
186
189
|
}));
|
|
187
190
|
const byUrl = new Map(routeParts.flat().map((route) => [route.url, route]));
|
|
188
|
-
const canonicalBase = (((
|
|
189
|
-
const indexableRoutes =
|
|
191
|
+
const canonicalBase = (((_b = website.seo) == null ? void 0 : _b.canonical_base_url) || website.domain || "").replace(/\/$/, "");
|
|
192
|
+
const indexableRoutes = sitemapRoutesForWebsite(
|
|
193
|
+
[...byUrl.values()],
|
|
194
|
+
(_c = website.seo) == null ? void 0 : _c.noindex
|
|
195
|
+
);
|
|
190
196
|
if (canonicalBase && indexableRoutes.length > 0) {
|
|
191
197
|
const artifacts = llmArtifacts.generateSitemapArtifacts({
|
|
192
198
|
routes: indexableRoutes.map((route) => ({
|
|
@@ -196,7 +202,7 @@ async function runSharded(opts) {
|
|
|
196
202
|
canonicalBase,
|
|
197
203
|
defaultLocale: website.default_locale,
|
|
198
204
|
supportedLocales: website.supported_locales,
|
|
199
|
-
splitByLocale: (
|
|
205
|
+
splitByLocale: (_d = website.seo) == null ? void 0 : _d.sitemap_split_by_locale
|
|
200
206
|
});
|
|
201
207
|
for (const artifact of artifacts) {
|
|
202
208
|
await fs.writeFile(
|
|
@@ -214,3 +220,4 @@ async function runSharded(opts) {
|
|
|
214
220
|
}
|
|
215
221
|
exports.matchesCmsPath = matchesCmsPath;
|
|
216
222
|
exports.runSharded = runSharded;
|
|
223
|
+
exports.sitemapRoutesForWebsite = sitemapRoutesForWebsite;
|
|
@@ -2,7 +2,7 @@ import { spawn } from "node:child_process";
|
|
|
2
2
|
import os from "node:os";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import process from "node:process";
|
|
5
|
-
import { f as fetchCmsSiteData, g as generateSitemapArtifacts } from "./validate-output-
|
|
5
|
+
import { f as fetchCmsSiteData, g as generateSitemapArtifacts } from "./validate-output-yDJYYYzK.js";
|
|
6
6
|
const AUTO_SHARD_CAP = Number(process.env.BLOX_SSG_SHARD_CAP) || 6;
|
|
7
7
|
const PREFETCH_BUDGET = Number(process.env.BLOX_SSG_PREFETCH_BUDGET) || 24;
|
|
8
8
|
const SEQUENTIAL_SHARDS = process.env.BLOX_SSG_SEQUENTIAL === "1";
|
|
@@ -15,6 +15,9 @@ function matchesCmsPath(pathname, cmsPaths) {
|
|
|
15
15
|
}
|
|
16
16
|
return false;
|
|
17
17
|
}
|
|
18
|
+
function sitemapRoutesForWebsite(routes, siteNoindex) {
|
|
19
|
+
return siteNoindex ? routes : routes.filter((route) => !route.noindex);
|
|
20
|
+
}
|
|
18
21
|
function resolveShardCount(shards) {
|
|
19
22
|
if (shards === "auto") {
|
|
20
23
|
const cores = os.cpus().length || 4;
|
|
@@ -68,7 +71,7 @@ function runShard(index, total, paths, opts, llmPartsDir, routePartsDir, siteDat
|
|
|
68
71
|
});
|
|
69
72
|
}
|
|
70
73
|
async function runSharded(opts) {
|
|
71
|
-
var _a, _b;
|
|
74
|
+
var _a, _b, _c, _d;
|
|
72
75
|
const total = resolveShardCount(opts.shards);
|
|
73
76
|
const fs = await import("node:fs/promises");
|
|
74
77
|
const paths = [...opts.extraPaths];
|
|
@@ -140,9 +143,9 @@ async function runSharded(opts) {
|
|
|
140
143
|
);
|
|
141
144
|
return failed[0].code;
|
|
142
145
|
}
|
|
143
|
-
if (process.env.BLOX_SSG_LLM !== "0") {
|
|
146
|
+
if (process.env.BLOX_SSG_LLM !== "0" && !((_a = website == null ? void 0 : website.seo) == null ? void 0 : _a.noindex)) {
|
|
144
147
|
try {
|
|
145
|
-
const { mergeLlmParts } = await import("./validate-output-
|
|
148
|
+
const { mergeLlmParts } = await import("./validate-output-yDJYYYzK.js").then((n) => n.C);
|
|
146
149
|
const mergeWebsite = website;
|
|
147
150
|
const partFiles = Array.from({ length: total }, (_, i) => path.join(llmPartsDir, `part.${i}.json`));
|
|
148
151
|
const { pages } = await mergeLlmParts({
|
|
@@ -161,8 +164,11 @@ async function runSharded(opts) {
|
|
|
161
164
|
return JSON.parse(await fs.readFile(file, "utf8"));
|
|
162
165
|
}));
|
|
163
166
|
const byUrl = new Map(routeParts.flat().map((route) => [route.url, route]));
|
|
164
|
-
const canonicalBase = (((
|
|
165
|
-
const indexableRoutes =
|
|
167
|
+
const canonicalBase = (((_b = website.seo) == null ? void 0 : _b.canonical_base_url) || website.domain || "").replace(/\/$/, "");
|
|
168
|
+
const indexableRoutes = sitemapRoutesForWebsite(
|
|
169
|
+
[...byUrl.values()],
|
|
170
|
+
(_c = website.seo) == null ? void 0 : _c.noindex
|
|
171
|
+
);
|
|
166
172
|
if (canonicalBase && indexableRoutes.length > 0) {
|
|
167
173
|
const artifacts = generateSitemapArtifacts({
|
|
168
174
|
routes: indexableRoutes.map((route) => ({
|
|
@@ -172,7 +178,7 @@ async function runSharded(opts) {
|
|
|
172
178
|
canonicalBase,
|
|
173
179
|
defaultLocale: website.default_locale,
|
|
174
180
|
supportedLocales: website.supported_locales,
|
|
175
|
-
splitByLocale: (
|
|
181
|
+
splitByLocale: (_d = website.seo) == null ? void 0 : _d.sitemap_split_by_locale
|
|
176
182
|
});
|
|
177
183
|
for (const artifact of artifacts) {
|
|
178
184
|
await fs.writeFile(
|
|
@@ -190,5 +196,6 @@ async function runSharded(opts) {
|
|
|
190
196
|
}
|
|
191
197
|
export {
|
|
192
198
|
matchesCmsPath,
|
|
193
|
-
runSharded
|
|
199
|
+
runSharded,
|
|
200
|
+
sitemapRoutesForWebsite
|
|
194
201
|
};
|
package/dist/ssg/cli.cjs
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
const process = require("node:process");
|
|
4
4
|
const fs = require("node:fs/promises");
|
|
5
5
|
const ssg_buildGrant = require("./build-grant.cjs");
|
|
6
|
-
const llmArtifacts = require("../validate-output-
|
|
6
|
+
const llmArtifacts = require("../validate-output-BymMbrA5.cjs");
|
|
7
|
+
const localeStrategy = require("../localeStrategy-OwRIn35C.cjs");
|
|
7
8
|
function installFetchTimeout() {
|
|
8
9
|
const ms = Number(process.env.BLOX_SSG_FETCH_TIMEOUT_MS) || 2e4;
|
|
9
10
|
const original = globalThis.fetch;
|
|
@@ -147,7 +148,7 @@ Environment:
|
|
|
147
148
|
if (shardsOpt !== null || routesCmd) {
|
|
148
149
|
const { apiBase: apiBase2, websiteName: configWebsiteName2 } = await resolveApiBase(mode);
|
|
149
150
|
const websiteName2 = process.env.WEBSITE_NAME ?? configWebsiteName2 ?? "default";
|
|
150
|
-
const { runSharded } = await Promise.resolve().then(() => require("../shard-runner-
|
|
151
|
+
const { runSharded } = await Promise.resolve().then(() => require("../shard-runner-DF3K3Ze_.cjs"));
|
|
151
152
|
const code = await runSharded({
|
|
152
153
|
shards: shardsOpt ?? "auto",
|
|
153
154
|
mode,
|
|
@@ -183,6 +184,7 @@ Environment:
|
|
|
183
184
|
let cmsPathSet = /* @__PURE__ */ new Set();
|
|
184
185
|
let cachedAppPaths = [];
|
|
185
186
|
let collectionItems;
|
|
187
|
+
let pageSlugMap = {};
|
|
186
188
|
const productionBuild = process.env.NODE_ENV === "production" || mode === "production";
|
|
187
189
|
try {
|
|
188
190
|
const siteData = siteDataFile ? JSON.parse(await fs.readFile(siteDataFile, "utf8")) : await llmArtifacts.fetchCmsSiteData(apiBase, websiteName, buildRequest);
|
|
@@ -193,6 +195,8 @@ Environment:
|
|
|
193
195
|
websiteId = siteData.websiteId;
|
|
194
196
|
redirects = siteData.redirects;
|
|
195
197
|
collectionItems = siteData.collectionItems;
|
|
198
|
+
localeStrategy.setPageSlugMap(siteData.pageSlugMap);
|
|
199
|
+
pageSlugMap = siteData.pageSlugMap ?? {};
|
|
196
200
|
if (!siteDataFile) {
|
|
197
201
|
console.log(` Found ${paths.length} CMS routes`);
|
|
198
202
|
if (redirects.length > 0) console.log(` Found ${redirects.length} redirects`);
|
|
@@ -247,6 +251,9 @@ Environment:
|
|
|
247
251
|
website,
|
|
248
252
|
websiteId,
|
|
249
253
|
redirects,
|
|
254
|
+
// Canonical localized page paths, injected into each document's
|
|
255
|
+
// hydration payload so client-side links resolve without a redirect.
|
|
256
|
+
pageSlugMap,
|
|
250
257
|
// LLM artifacts (llms.txt, llms-full.txt, per-page JSON-LD). On by
|
|
251
258
|
// default; opt out with BLOX_SSG_LLM=0. Skip the *file* artifacts when
|
|
252
259
|
// sharding (>1 shard) because the writing shard only has its own slice of
|
package/dist/ssg/cli.mjs
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
import process from "node:process";
|
|
3
3
|
import fs from "node:fs/promises";
|
|
4
4
|
import { resolveBloxBuildGrant } from "./build-grant.mjs";
|
|
5
|
-
import { v as validateSsgOutput, u as uploadBloxManifest, p as polyfillBloxSsgGlobals, f as fetchCmsSiteData, b as buildCollectionResolver, a as prerender, c as validateInternalLinks } from "../validate-output-
|
|
5
|
+
import { v as validateSsgOutput, u as uploadBloxManifest, p as polyfillBloxSsgGlobals, f as fetchCmsSiteData, b as buildCollectionResolver, a as prerender, c as validateInternalLinks } from "../validate-output-yDJYYYzK.js";
|
|
6
|
+
import { s as setPageSlugMap } from "../localeStrategy-hXlNof1E.js";
|
|
6
7
|
function installFetchTimeout() {
|
|
7
8
|
const ms = Number(process.env.BLOX_SSG_FETCH_TIMEOUT_MS) || 2e4;
|
|
8
9
|
const original = globalThis.fetch;
|
|
@@ -146,7 +147,7 @@ Environment:
|
|
|
146
147
|
if (shardsOpt !== null || routesCmd) {
|
|
147
148
|
const { apiBase: apiBase2, websiteName: configWebsiteName2 } = await resolveApiBase(mode);
|
|
148
149
|
const websiteName2 = process.env.WEBSITE_NAME ?? configWebsiteName2 ?? "default";
|
|
149
|
-
const { runSharded } = await import("../shard-runner-
|
|
150
|
+
const { runSharded } = await import("../shard-runner-DFrc8d4O.js");
|
|
150
151
|
const code = await runSharded({
|
|
151
152
|
shards: shardsOpt ?? "auto",
|
|
152
153
|
mode,
|
|
@@ -182,6 +183,7 @@ Environment:
|
|
|
182
183
|
let cmsPathSet = /* @__PURE__ */ new Set();
|
|
183
184
|
let cachedAppPaths = [];
|
|
184
185
|
let collectionItems;
|
|
186
|
+
let pageSlugMap = {};
|
|
185
187
|
const productionBuild = process.env.NODE_ENV === "production" || mode === "production";
|
|
186
188
|
try {
|
|
187
189
|
const siteData = siteDataFile ? JSON.parse(await fs.readFile(siteDataFile, "utf8")) : await fetchCmsSiteData(apiBase, websiteName, buildRequest);
|
|
@@ -192,6 +194,8 @@ Environment:
|
|
|
192
194
|
websiteId = siteData.websiteId;
|
|
193
195
|
redirects = siteData.redirects;
|
|
194
196
|
collectionItems = siteData.collectionItems;
|
|
197
|
+
setPageSlugMap(siteData.pageSlugMap);
|
|
198
|
+
pageSlugMap = siteData.pageSlugMap ?? {};
|
|
195
199
|
if (!siteDataFile) {
|
|
196
200
|
console.log(` Found ${paths.length} CMS routes`);
|
|
197
201
|
if (redirects.length > 0) console.log(` Found ${redirects.length} redirects`);
|
|
@@ -246,6 +250,9 @@ Environment:
|
|
|
246
250
|
website,
|
|
247
251
|
websiteId,
|
|
248
252
|
redirects,
|
|
253
|
+
// Canonical localized page paths, injected into each document's
|
|
254
|
+
// hydration payload so client-side links resolve without a redirect.
|
|
255
|
+
pageSlugMap,
|
|
249
256
|
// LLM artifacts (llms.txt, llms-full.txt, per-page JSON-LD). On by
|
|
250
257
|
// default; opt out with BLOX_SSG_LLM=0. Skip the *file* artifacts when
|
|
251
258
|
// sharding (>1 shard) because the writing shard only has its own slice of
|
package/dist/ssg/cms-routes.d.ts
CHANGED
|
@@ -12,6 +12,13 @@ export interface CmsSiteData {
|
|
|
12
12
|
paths: string[];
|
|
13
13
|
/** Locale-qualified published CMS page slugs, including dynamic templates. */
|
|
14
14
|
pageSlugs: string[];
|
|
15
|
+
/**
|
|
16
|
+
* Canonical localized path per locale for every static CMS page, keyed by its
|
|
17
|
+
* default-locale path (`{ "/about-us": { en, es, fr, it, nl } }`).
|
|
18
|
+
* `LocaleStrategy.toPath()` uses it to emit canonical links instead of
|
|
19
|
+
* default-locale slugs behind a redirect.
|
|
20
|
+
*/
|
|
21
|
+
pageSlugMap: Record<string, Record<string, string>>;
|
|
15
22
|
redirects: RedirectEntry[];
|
|
16
23
|
/** Datastore collections referenced by any page's data_bindings. */
|
|
17
24
|
collections: CollectionRef[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cms-routes.d.ts","sourceRoot":"","sources":["../../src/ssg/cms-routes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAoB9D,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,WAAW,CAAA;IACpB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,8EAA8E;IAC9E,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,SAAS,EAAE,aAAa,EAAE,CAAA;IAC1B,oEAAoE;IACpE,WAAW,EAAE,aAAa,EAAE,CAAA;IAC5B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;CAC3D;
|
|
1
|
+
{"version":3,"file":"cms-routes.d.ts","sourceRoot":"","sources":["../../src/ssg/cms-routes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAoB9D,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,WAAW,CAAA;IACpB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,8EAA8E;IAC9E,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB;;;;;OAKG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACnD,SAAS,EAAE,aAAa,EAAE,CAAA;IAC1B,oEAAoE;IACpE,WAAW,EAAE,aAAa,EAAE,CAAA;IAC5B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;CAC3D;AAwCD;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,EAAE,GACxB,MAAM,EAAE,CASV;AAMD;;;GAGG;AACH,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,cAAc,GAAE,uBAA4B,GAC1C,OAAO,CAAC,WAAW,CAAC,CAuLtB;AAkID,MAAM,MAAM,kBAAkB,GAAG,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KACrE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;AAE9C;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACtC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,GACxD,kBAAkB,CAapB"}
|
package/dist/ssg/index.cjs
CHANGED
|
@@ -22,11 +22,11 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
22
22
|
mod
|
|
23
23
|
));
|
|
24
24
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
25
|
-
const llmArtifacts = require("../validate-output-
|
|
25
|
+
const llmArtifacts = require("../validate-output-BymMbrA5.cjs");
|
|
26
26
|
const ssg_buildGrant = require("./build-grant.cjs");
|
|
27
27
|
const ssg_client = require("../client-AoDTJJXJ.cjs");
|
|
28
28
|
const vue = require("vue");
|
|
29
|
-
const appRuntime = require("../appRuntime-
|
|
29
|
+
const appRuntime = require("../appRuntime-Z0AxTPxf.cjs");
|
|
30
30
|
const index = require("../index-DUjEj7ts.cjs");
|
|
31
31
|
async function renderBloxSsgPage(options) {
|
|
32
32
|
var _a, _b, _c, _d;
|
|
@@ -41,6 +41,7 @@ async function renderBloxSsgPage(options) {
|
|
|
41
41
|
locale,
|
|
42
42
|
website = null,
|
|
43
43
|
websiteId = "",
|
|
44
|
+
pageSlugMap = {},
|
|
44
45
|
llm
|
|
45
46
|
} = options;
|
|
46
47
|
if (resolvedData != null && !websiteId) {
|
|
@@ -72,6 +73,7 @@ async function renderBloxSsgPage(options) {
|
|
|
72
73
|
version: 2,
|
|
73
74
|
...resolvedData != null ? { route: { path: stateKey, resolved: resolvedData } } : {},
|
|
74
75
|
...websiteId ? { websiteId } : {},
|
|
76
|
+
...Object.keys(pageSlugMap).length ? { pageSlugMap } : {},
|
|
75
77
|
data: bloxData
|
|
76
78
|
})};${"<"}/script>`;
|
|
77
79
|
let head = llmArtifacts.buildPageHead({
|
package/dist/ssg/index.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { d as buildPageHead, e as primaryContextEntry, h as buildJsonLd, i as extractPageText, B as BloxBuildResponseError, j as bloxBuildJson } from "../validate-output-
|
|
2
|
-
import { k, l, f, m, n, o, q, g, r, s, t, w, x, y, p, a, z, A, u, c, v } from "../validate-output-
|
|
1
|
+
import { d as buildPageHead, e as primaryContextEntry, h as buildJsonLd, i as extractPageText, B as BloxBuildResponseError, j as bloxBuildJson } from "../validate-output-yDJYYYzK.js";
|
|
2
|
+
import { k, l, f, m, n, o, q, g, r, s, t, w, x, y, p, a, z, A, u, c, v } from "../validate-output-yDJYYYzK.js";
|
|
3
3
|
import { parseBloxBuildGrantBody, resolveBloxBuildGrant } from "./build-grant.mjs";
|
|
4
4
|
import { a as BLOX_HYDRATION_WINDOW_KEY } from "../client-Ce9fRCGH.js";
|
|
5
5
|
import { createSSRApp, h, Suspense } from "vue";
|
|
6
|
-
import { c as collectBloxData, a as collectBloxSeo, p as provideBloxData, b as provideBloxLocale, B as BLOX_SSR_ROUTE_STATE_KEY, i as installBloxRuntime, s as setActiveLocale } from "../appRuntime-
|
|
6
|
+
import { c as collectBloxData, a as collectBloxSeo, p as provideBloxData, b as provideBloxLocale, B as BLOX_SSR_ROUTE_STATE_KEY, i as installBloxRuntime, s as setActiveLocale } from "../appRuntime-DZSCSsnS.js";
|
|
7
7
|
import { provideBloxApi, getCollectionResolver } from "../index-I81QTzv-.js";
|
|
8
8
|
async function renderBloxSsgPage(options) {
|
|
9
9
|
var _a, _b, _c, _d;
|
|
@@ -18,6 +18,7 @@ async function renderBloxSsgPage(options) {
|
|
|
18
18
|
locale,
|
|
19
19
|
website = null,
|
|
20
20
|
websiteId = "",
|
|
21
|
+
pageSlugMap = {},
|
|
21
22
|
llm
|
|
22
23
|
} = options;
|
|
23
24
|
if (resolvedData != null && !websiteId) {
|
|
@@ -49,6 +50,7 @@ async function renderBloxSsgPage(options) {
|
|
|
49
50
|
version: 2,
|
|
50
51
|
...resolvedData != null ? { route: { path: stateKey, resolved: resolvedData } } : {},
|
|
51
52
|
...websiteId ? { websiteId } : {},
|
|
53
|
+
...Object.keys(pageSlugMap).length ? { pageSlugMap } : {},
|
|
52
54
|
data: bloxData
|
|
53
55
|
})};${"<"}/script>`;
|
|
54
56
|
let head = buildPageHead({
|
package/dist/ssg/prerender.d.ts
CHANGED
|
@@ -34,6 +34,8 @@ export interface PrerenderOptions {
|
|
|
34
34
|
websiteId?: string;
|
|
35
35
|
/** Redirects to write as _redirects (Netlify). */
|
|
36
36
|
redirects?: RedirectEntry[];
|
|
37
|
+
/** Canonical localized page paths, embedded in each document's hydration payload. */
|
|
38
|
+
pageSlugMap?: Record<string, Record<string, string>>;
|
|
37
39
|
/** LLM artifacts config (llms.txt, llms-full.txt, per-page JSON-LD). */
|
|
38
40
|
llm?: LlmArtifactsConfig;
|
|
39
41
|
}
|
|
@@ -98,7 +100,7 @@ export declare function prerender({ root, clientOutDir, serverEntry, paths, craw
|
|
|
98
100
|
* sharded runner divides a global budget by the shard count. 0 disables
|
|
99
101
|
* prefetch (render resolves inline). Default 8.
|
|
100
102
|
*/
|
|
101
|
-
resolvePrefetchConcurrency, appPaths, includeRoot, routePartsFile, mode, website, websiteId, redirects, llm, }?: PrerenderOptions): Promise<PrerenderResult>;
|
|
103
|
+
resolvePrefetchConcurrency, appPaths, includeRoot, routePartsFile, mode, website, websiteId, redirects, pageSlugMap, llm, }?: PrerenderOptions): Promise<PrerenderResult>;
|
|
102
104
|
/**
|
|
103
105
|
* Collect `<link rel="preload">` tags for the web fonts a page is likely to use.
|
|
104
106
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prerender.d.ts","sourceRoot":"","sources":["../../src/ssg/prerender.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prerender.d.ts","sourceRoot":"","sources":["../../src/ssg/prerender.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,8 @@ export declare function renderBloxSsgPage<TApp>(options: {
|
|
|
39
39
|
website?: WebsiteRead | null;
|
|
40
40
|
/** Resolved website ID — embedded so client skips GET /blox/websites. */
|
|
41
41
|
websiteId?: string;
|
|
42
|
+
/** Canonical localized page paths, embedded for client-side link resolution. */
|
|
43
|
+
pageSlugMap?: Record<string, Record<string, string>>;
|
|
42
44
|
/** LLM artifacts config — gates JSON-LD injection + llms.txt text capture. */
|
|
43
45
|
llm?: LlmArtifactsConfig;
|
|
44
46
|
}): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-resolved-page.d.ts","sourceRoot":"","sources":["../../src/ssg/render-resolved-page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAGpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAGvE,UAAU,cAAc;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE;IACtD,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACxE,eAAe,EAAE,CAChB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,OAAO,GAAG,IAAI,EAC5B,QAAQ,EAAE,MAAM,KACZ;QAAE,GAAG,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,iBAAiB,CAAC;QAAC,YAAY,CAAC,EAAE,gBAAgB,CAAA;KAAE,CAAA;IAC9E,8EAA8E;IAC9E,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrE,sEAAsE;IACtE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,WAAW,CAAA;IACxD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+EAA+E;IAC/E,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8EAA8E;IAC9E,GAAG,CAAC,EAAE,kBAAkB,CAAA;CACxB,GAAG,OAAO,CAAC;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,GAAG,CAAC,EAAE,YAAY,CAAA;CAClB,CAAC,
|
|
1
|
+
{"version":3,"file":"render-resolved-page.d.ts","sourceRoot":"","sources":["../../src/ssg/render-resolved-page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAGpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAGvE,UAAU,cAAc;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE;IACtD,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACxE,eAAe,EAAE,CAChB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,OAAO,GAAG,IAAI,EAC5B,QAAQ,EAAE,MAAM,KACZ;QAAE,GAAG,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,iBAAiB,CAAC;QAAC,YAAY,CAAC,EAAE,gBAAgB,CAAA;KAAE,CAAA;IAC9E,8EAA8E;IAC9E,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrE,sEAAsE;IACtE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,WAAW,CAAA;IACxD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+EAA+E;IAC/E,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACpD,8EAA8E;IAC9E,GAAG,CAAC,EAAE,kBAAkB,CAAA;CACxB,GAAG,OAAO,CAAC;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,GAAG,CAAC,EAAE,YAAY,CAAA;CAClB,CAAC,CAgHD;AAED,yFAAyF;AACzF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE/C"}
|
package/dist/ssg/seo.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../../src/ssg/seo.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../../src/ssg/seo.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,9 @@ export interface ShardRunnerOptions {
|
|
|
23
23
|
routesCmd?: string;
|
|
24
24
|
}
|
|
25
25
|
export declare function matchesCmsPath(pathname: string, cmsPaths: Set<string>): boolean;
|
|
26
|
+
export declare function sitemapRoutesForWebsite<T extends {
|
|
27
|
+
noindex: boolean;
|
|
28
|
+
}>(routes: T[], siteNoindex: boolean | undefined): T[];
|
|
26
29
|
/**
|
|
27
30
|
* Coordinate a sharded prerender. Returns the process exit code.
|
|
28
31
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shard-runner.d.ts","sourceRoot":"","sources":["../../src/ssg/shard-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAQH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAI9D,MAAM,WAAW,kBAAkB;IAClC,qDAAqD;IACrD,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAA;IACZ,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAA;IACf,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,YAAY,CAAC,EAAE,uBAAuB,CAAA;IACtC,iFAAiF;IACjF,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,8FAA8F;IAC9F,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAWD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAQ/E;AAsED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"shard-runner.d.ts","sourceRoot":"","sources":["../../src/ssg/shard-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAQH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAI9D,MAAM,WAAW,kBAAkB;IAClC,qDAAqD;IACrD,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAA;IACZ,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAA;IACf,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,YAAY,CAAC,EAAE,uBAAuB,CAAA;IACtC,iFAAiF;IACjF,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,8FAA8F;IAC9F,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAWD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAQ/E;AAED,wBAAgB,uBAAuB,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,EACrE,MAAM,EAAE,CAAC,EAAE,EACX,WAAW,EAAE,OAAO,GAAG,SAAS,GAC9B,CAAC,EAAE,CAIL;AAsED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0J1E"}
|
|
@@ -26,7 +26,7 @@ const fs = require("node:fs/promises");
|
|
|
26
26
|
const path = require("node:path");
|
|
27
27
|
const process$1 = require("node:process");
|
|
28
28
|
const node_url = require("node:url");
|
|
29
|
-
const
|
|
29
|
+
const localeStrategy = require("./localeStrategy-OwRIn35C.cjs");
|
|
30
30
|
class BloxBuildResponseError extends Error {
|
|
31
31
|
constructor(status, url, statusText) {
|
|
32
32
|
super(`Build API ${status} ${statusText}: ${url}`);
|
|
@@ -95,6 +95,24 @@ async function bloxBuildJson(input, init = {}, options = {}) {
|
|
|
95
95
|
if (response.status === 204) return null;
|
|
96
96
|
return response.json();
|
|
97
97
|
}
|
|
98
|
+
function buildPageSlugMap(localizedBundles, defaultLocale) {
|
|
99
|
+
var _a;
|
|
100
|
+
const map = {};
|
|
101
|
+
const defaultPages = ((_a = localizedBundles.find((result) => result.locale === defaultLocale)) == null ? void 0 : _a.bundle.pages) ?? [];
|
|
102
|
+
const canonicalById = new Map(
|
|
103
|
+
defaultPages.flatMap((page) => page.id && page.slug && !page.slug.includes(":") ? [[page.id, page.slug]] : [])
|
|
104
|
+
);
|
|
105
|
+
for (const { locale, bundle } of localizedBundles) {
|
|
106
|
+
for (const page of bundle.pages) {
|
|
107
|
+
if (!page.slug || page.slug.includes(":") || page.status && page.status !== "published") continue;
|
|
108
|
+
const canonical = page.id ? canonicalById.get(page.id) : void 0;
|
|
109
|
+
if (!canonical) continue;
|
|
110
|
+
const entry = map[canonical] ?? (map[canonical] = { [defaultLocale]: canonical });
|
|
111
|
+
entry[locale] = page.slug;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return map;
|
|
115
|
+
}
|
|
98
116
|
function localizePath(slug, locale, defaultLocale) {
|
|
99
117
|
if (locale === defaultLocale) return slug === "" ? "/" : slug;
|
|
100
118
|
const s = slug === "" || slug === "/" ? "" : slug;
|
|
@@ -141,7 +159,7 @@ async function fetchCmsSiteData(apiBase, websiteName, requestOptions = {}) {
|
|
|
141
159
|
return [{
|
|
142
160
|
from_path: fromPath,
|
|
143
161
|
to_path: localizePath(page.slug, locale, defaultLocale2),
|
|
144
|
-
status_code:
|
|
162
|
+
status_code: 301
|
|
145
163
|
}];
|
|
146
164
|
});
|
|
147
165
|
});
|
|
@@ -155,6 +173,7 @@ async function fetchCmsSiteData(apiBase, websiteName, requestOptions = {}) {
|
|
|
155
173
|
website: website2,
|
|
156
174
|
paths: paths2,
|
|
157
175
|
pageSlugs: [...new Set(localizedBundles.flatMap((result) => result.bundle.pages.flatMap((page) => page.slug ? [localizePath(page.slug, result.locale, defaultLocale2)] : [])))],
|
|
176
|
+
pageSlugMap: buildPageSlugMap(localizedBundles, defaultLocale2),
|
|
158
177
|
redirects: redirects2,
|
|
159
178
|
collections: extractCollectionRefs(localizedBundles.flatMap((result) => result.bundle.pages)),
|
|
160
179
|
collectionItems
|
|
@@ -198,7 +217,7 @@ async function fetchCmsSiteData(apiBase, websiteName, requestOptions = {}) {
|
|
|
198
217
|
return [{
|
|
199
218
|
from_path: fromPath,
|
|
200
219
|
to_path: localizePath(page.slug, locale, defaultLocale),
|
|
201
|
-
status_code:
|
|
220
|
+
status_code: 301
|
|
202
221
|
}];
|
|
203
222
|
});
|
|
204
223
|
});
|
|
@@ -214,7 +233,18 @@ async function fetchCmsSiteData(apiBase, websiteName, requestOptions = {}) {
|
|
|
214
233
|
const pages = localizedPages.flatMap((result) => result.pages);
|
|
215
234
|
const collections = extractCollectionRefs(pages);
|
|
216
235
|
const pageSlugs = [...new Set(localizedPages.flatMap((result) => result.pages.flatMap((page) => page.slug ? [localizePath(page.slug, result.locale, defaultLocale)] : [])))];
|
|
217
|
-
return {
|
|
236
|
+
return {
|
|
237
|
+
websiteId: site.id,
|
|
238
|
+
website,
|
|
239
|
+
paths,
|
|
240
|
+
pageSlugs,
|
|
241
|
+
pageSlugMap: buildPageSlugMap(
|
|
242
|
+
localizedPages.map((result) => ({ locale: result.locale, bundle: { pages: result.pages } })),
|
|
243
|
+
defaultLocale
|
|
244
|
+
),
|
|
245
|
+
redirects,
|
|
246
|
+
collections
|
|
247
|
+
};
|
|
218
248
|
}
|
|
219
249
|
async function expandRoutes(apiBase, pages, requestOptions, locale, collectItems) {
|
|
220
250
|
const routes = [];
|
|
@@ -444,7 +474,7 @@ function buildPageHead(options) {
|
|
|
444
474
|
const page = resolvedData == null ? void 0 : resolvedData.page;
|
|
445
475
|
const ctx = extractPrimaryContext(resolvedData == null ? void 0 : resolvedData.contexts);
|
|
446
476
|
const siteName = seo.site_name || void 0;
|
|
447
|
-
const title =
|
|
477
|
+
const title = localeStrategy.resolvePageTitle(resolvedData ?? {}, {
|
|
448
478
|
override: override == null ? void 0 : override.title,
|
|
449
479
|
siteName,
|
|
450
480
|
defaultTitle: seo.default_meta_title
|
|
@@ -677,7 +707,7 @@ function generateSitemapArtifacts(options) {
|
|
|
677
707
|
function generateRobotsTxt(options) {
|
|
678
708
|
const { robotsTxt, canonicalBase, noindex } = options;
|
|
679
709
|
const base = (canonicalBase || "").replace(/\/$/, "");
|
|
680
|
-
const sitemapLine = base
|
|
710
|
+
const sitemapLine = base ? `
|
|
681
711
|
Sitemap: ${base}/sitemap.xml
|
|
682
712
|
` : "";
|
|
683
713
|
if (robotsTxt) {
|
|
@@ -690,7 +720,7 @@ ${sitemapLine}`;
|
|
|
690
720
|
if (noindex) {
|
|
691
721
|
return `User-agent: *
|
|
692
722
|
Disallow: /
|
|
693
|
-
`;
|
|
723
|
+
${sitemapLine}`;
|
|
694
724
|
}
|
|
695
725
|
return `User-agent: *
|
|
696
726
|
Allow: /
|
|
@@ -738,20 +768,20 @@ function getSiteIconFlags(website) {
|
|
|
738
768
|
function extractPrimaryContext(contexts) {
|
|
739
769
|
var _a;
|
|
740
770
|
const empty = { title: null, description: null, image: null };
|
|
741
|
-
const ctx = (_a =
|
|
771
|
+
const ctx = (_a = localeStrategy.primaryPageContext(contexts)) == null ? void 0 : _a.ctx;
|
|
742
772
|
if (!ctx) return empty;
|
|
743
773
|
const str2 = (key) => {
|
|
744
774
|
const v = ctx[key];
|
|
745
775
|
return typeof v === "string" && v.trim() ? v.trim() : null;
|
|
746
776
|
};
|
|
747
777
|
return {
|
|
748
|
-
title:
|
|
778
|
+
title: localeStrategy.contextPageTitle(ctx),
|
|
749
779
|
description: str2("meta_description") || str2("excerpt") || str2("description") || str2("blurb") || str2("summary"),
|
|
750
780
|
image: str2("og_image") || str2("cover_image_url") || str2("image_url") || str2("image")
|
|
751
781
|
};
|
|
752
782
|
}
|
|
753
783
|
function primaryContextEntry(contexts) {
|
|
754
|
-
return
|
|
784
|
+
return localeStrategy.primaryPageContext(contexts);
|
|
755
785
|
}
|
|
756
786
|
function esc(s) {
|
|
757
787
|
return s.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">");
|
|
@@ -1015,6 +1045,7 @@ async function prerender({
|
|
|
1015
1045
|
website = null,
|
|
1016
1046
|
websiteId = "",
|
|
1017
1047
|
redirects = [],
|
|
1048
|
+
pageSlugMap = {},
|
|
1018
1049
|
llm = {}
|
|
1019
1050
|
} = {}) {
|
|
1020
1051
|
var _a, _b, _c, _d, _e, _f;
|
|
@@ -1122,6 +1153,7 @@ async function prerender({
|
|
|
1122
1153
|
template,
|
|
1123
1154
|
website,
|
|
1124
1155
|
websiteId,
|
|
1156
|
+
pageSlugMap,
|
|
1125
1157
|
resolveCache,
|
|
1126
1158
|
llm
|
|
1127
1159
|
});
|
|
@@ -1171,8 +1203,8 @@ async function prerender({
|
|
|
1171
1203
|
}
|
|
1172
1204
|
const canonicalBase = (((_a = website == null ? void 0 : website.seo) == null ? void 0 : _a.canonical_base_url) || (website == null ? void 0 : website.domain) || "").replace(/\/$/, "");
|
|
1173
1205
|
if (writeSharedAssets) {
|
|
1174
|
-
const sitemapPaths = rendered.filter((p) => !noindexPaths.has(p));
|
|
1175
|
-
if (
|
|
1206
|
+
const sitemapPaths = ((_b = website == null ? void 0 : website.seo) == null ? void 0 : _b.noindex) ? rendered : rendered.filter((p) => !noindexPaths.has(p));
|
|
1207
|
+
if (canonicalBase && sitemapPaths.length > 0) {
|
|
1176
1208
|
const artifacts = generateSitemapArtifacts({
|
|
1177
1209
|
routes: sitemapPaths.map((routePath) => ({
|
|
1178
1210
|
path: routePath,
|
|
@@ -1596,7 +1628,7 @@ async function validateSsgOutput(options) {
|
|
|
1596
1628
|
if (!htmlFiles.length) failures.push("output contains no HTML files");
|
|
1597
1629
|
if (!hydratedFiles) failures.push("output contains no prerendered Blox hydration state");
|
|
1598
1630
|
const siteNoindex = await readSiteNoindex(outDir);
|
|
1599
|
-
const optionalWhenNoindex = /* @__PURE__ */ new Set(["
|
|
1631
|
+
const optionalWhenNoindex = /* @__PURE__ */ new Set(["llms.txt", "llms-full.txt"]);
|
|
1600
1632
|
for (const required of requiredFiles) {
|
|
1601
1633
|
if (siteNoindex && optionalWhenNoindex.has(required)) continue;
|
|
1602
1634
|
try {
|