@bagelink/blox 1.15.671 → 1.15.672
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/{shard-runner-kRQWqGVy.cjs → shard-runner-Ctxv1BCm.cjs} +2 -2
- package/dist/{shard-runner-LgGSa4zZ.js → shard-runner-DpVAhzsZ.js} +2 -2
- package/dist/ssg/cli.cjs +2 -2
- package/dist/ssg/cli.mjs +2 -2
- package/dist/ssg/index.cjs +1 -1
- package/dist/ssg/index.mjs +2 -2
- package/dist/ssg/seo.d.ts +1 -1
- package/dist/ssg/seo.d.ts.map +1 -1
- package/dist/{validate-output-CzSMiLrL.cjs → validate-output-BTAIN5It.cjs} +19 -11
- package/dist/{validate-output-7_TqMVLs.js → validate-output-Cf8c6H-K.js} +19 -11
- package/package.json +1 -1
|
@@ -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-BTAIN5It.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";
|
|
@@ -166,7 +166,7 @@ async function runSharded(opts) {
|
|
|
166
166
|
}
|
|
167
167
|
if (process.env.BLOX_SSG_LLM !== "0") {
|
|
168
168
|
try {
|
|
169
|
-
const { mergeLlmParts } = await Promise.resolve().then(() => require("./validate-output-
|
|
169
|
+
const { mergeLlmParts } = await Promise.resolve().then(() => require("./validate-output-BTAIN5It.cjs")).then((n) => n.llmArtifacts);
|
|
170
170
|
const mergeWebsite = website;
|
|
171
171
|
const partFiles = Array.from({ length: total }, (_, i) => path.join(llmPartsDir, `part.${i}.json`));
|
|
172
172
|
const { pages } = await mergeLlmParts({
|
|
@@ -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-Cf8c6H-K.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";
|
|
@@ -142,7 +142,7 @@ async function runSharded(opts) {
|
|
|
142
142
|
}
|
|
143
143
|
if (process.env.BLOX_SSG_LLM !== "0") {
|
|
144
144
|
try {
|
|
145
|
-
const { mergeLlmParts } = await import("./validate-output-
|
|
145
|
+
const { mergeLlmParts } = await import("./validate-output-Cf8c6H-K.js").then((n) => n.C);
|
|
146
146
|
const mergeWebsite = website;
|
|
147
147
|
const partFiles = Array.from({ length: total }, (_, i) => path.join(llmPartsDir, `part.${i}.json`));
|
|
148
148
|
const { pages } = await mergeLlmParts({
|
package/dist/ssg/cli.cjs
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
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-BTAIN5It.cjs");
|
|
7
7
|
function installFetchTimeout() {
|
|
8
8
|
const ms = Number(process.env.BLOX_SSG_FETCH_TIMEOUT_MS) || 2e4;
|
|
9
9
|
const original = globalThis.fetch;
|
|
@@ -147,7 +147,7 @@ Environment:
|
|
|
147
147
|
if (shardsOpt !== null || routesCmd) {
|
|
148
148
|
const { apiBase: apiBase2, websiteName: configWebsiteName2 } = await resolveApiBase(mode);
|
|
149
149
|
const websiteName2 = process.env.WEBSITE_NAME ?? configWebsiteName2 ?? "default";
|
|
150
|
-
const { runSharded } = await Promise.resolve().then(() => require("../shard-runner-
|
|
150
|
+
const { runSharded } = await Promise.resolve().then(() => require("../shard-runner-Ctxv1BCm.cjs"));
|
|
151
151
|
const code = await runSharded({
|
|
152
152
|
shards: shardsOpt ?? "auto",
|
|
153
153
|
mode,
|
package/dist/ssg/cli.mjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
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-Cf8c6H-K.js";
|
|
6
6
|
function installFetchTimeout() {
|
|
7
7
|
const ms = Number(process.env.BLOX_SSG_FETCH_TIMEOUT_MS) || 2e4;
|
|
8
8
|
const original = globalThis.fetch;
|
|
@@ -146,7 +146,7 @@ Environment:
|
|
|
146
146
|
if (shardsOpt !== null || routesCmd) {
|
|
147
147
|
const { apiBase: apiBase2, websiteName: configWebsiteName2 } = await resolveApiBase(mode);
|
|
148
148
|
const websiteName2 = process.env.WEBSITE_NAME ?? configWebsiteName2 ?? "default";
|
|
149
|
-
const { runSharded } = await import("../shard-runner-
|
|
149
|
+
const { runSharded } = await import("../shard-runner-DpVAhzsZ.js");
|
|
150
150
|
const code = await runSharded({
|
|
151
151
|
shards: shardsOpt ?? "auto",
|
|
152
152
|
mode,
|
package/dist/ssg/index.cjs
CHANGED
|
@@ -22,7 +22,7 @@ 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-BTAIN5It.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");
|
package/dist/ssg/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
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-Cf8c6H-K.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-Cf8c6H-K.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";
|
package/dist/ssg/seo.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export interface SeoPageData {
|
|
|
13
13
|
* `base` (canonical site origin) makes root-relative `url`/`@id`/`image`
|
|
14
14
|
* values absolute — CMS-authored graphs stay portable across environments.
|
|
15
15
|
*/
|
|
16
|
-
export declare function buildStructuredData(sd: StructuredData | Record<string, unknown> | null | undefined, locale?: string, base?: string): string;
|
|
16
|
+
export declare function buildStructuredData(sd: StructuredData | Record<string, unknown> | null | undefined, locale?: string, base?: string, pageUrl?: string): string;
|
|
17
17
|
export interface RedirectEntry {
|
|
18
18
|
from_path: string;
|
|
19
19
|
to_path: string;
|
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":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAOzE,4DAA4D;AAC5D,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,QAAQ,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;CACzD;
|
|
1
|
+
{"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../../src/ssg/seo.ts"],"names":[],"mappings":"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"}
|
|
@@ -393,21 +393,27 @@ async function polyfillBloxSsgGlobals(options) {
|
|
|
393
393
|
g.window.document = _win.document;
|
|
394
394
|
}
|
|
395
395
|
const URL_KEYS = /* @__PURE__ */ new Set(["url", "image", "logo", "@id"]);
|
|
396
|
-
function absolutizeJsonLd(value, base) {
|
|
396
|
+
function absolutizeJsonLd(value, base, pageUrl) {
|
|
397
397
|
if (!base) return value;
|
|
398
|
-
if (Array.isArray(value)) return value.map((entry) => absolutizeJsonLd(entry, base));
|
|
398
|
+
if (Array.isArray(value)) return value.map((entry) => absolutizeJsonLd(entry, base, pageUrl));
|
|
399
399
|
if (!value || typeof value !== "object") return value;
|
|
400
400
|
const out = {};
|
|
401
401
|
for (const [key, entry] of Object.entries(value)) {
|
|
402
|
-
if (key !== "@context" && typeof entry === "string" && URL_KEYS.has(key)
|
|
403
|
-
|
|
404
|
-
|
|
402
|
+
if (key !== "@context" && typeof entry === "string" && URL_KEYS.has(key)) {
|
|
403
|
+
if (entry.startsWith("#") && pageUrl) {
|
|
404
|
+
out[key] = pageUrl + entry;
|
|
405
|
+
continue;
|
|
406
|
+
}
|
|
407
|
+
if (entry.startsWith("/")) {
|
|
408
|
+
out[key] = base + entry;
|
|
409
|
+
continue;
|
|
410
|
+
}
|
|
405
411
|
}
|
|
406
|
-
out[key] = absolutizeJsonLd(entry, base);
|
|
412
|
+
out[key] = absolutizeJsonLd(entry, base, pageUrl);
|
|
407
413
|
}
|
|
408
414
|
return out;
|
|
409
415
|
}
|
|
410
|
-
function buildStructuredData(sd, locale, base) {
|
|
416
|
+
function buildStructuredData(sd, locale, base, pageUrl) {
|
|
411
417
|
var _a;
|
|
412
418
|
if (!sd) return "";
|
|
413
419
|
const siteData = "org" in sd || "org_by_locale" in sd;
|
|
@@ -415,7 +421,7 @@ function buildStructuredData(sd, locale, base) {
|
|
|
415
421
|
const value = siteData ? perLocale ?? sd.org : sd;
|
|
416
422
|
if (value == null || typeof value === "string" && value === "") return "";
|
|
417
423
|
try {
|
|
418
|
-
const resolved = typeof value === "string" ? value : JSON.stringify(absolutizeJsonLd(value, base ?? ""));
|
|
424
|
+
const resolved = typeof value === "string" ? value : JSON.stringify(absolutizeJsonLd(value, base ?? "", pageUrl));
|
|
419
425
|
return `<script type="application/ld+json">${resolved}${"<"}/script>`;
|
|
420
426
|
} catch {
|
|
421
427
|
return "";
|
|
@@ -491,18 +497,20 @@ function buildPageHead(options) {
|
|
|
491
497
|
const structuredData = buildStructuredData(
|
|
492
498
|
website == null ? void 0 : website.structured_data,
|
|
493
499
|
locale || (website == null ? void 0 : website.default_locale),
|
|
494
|
-
canonicalBase
|
|
500
|
+
canonicalBase,
|
|
501
|
+
canonicalBase + url
|
|
495
502
|
);
|
|
496
503
|
if (structuredData) parts.push(structuredData);
|
|
497
504
|
const pageStructuredData = buildStructuredData(
|
|
498
505
|
page == null ? void 0 : page.structured_data,
|
|
499
506
|
locale || (website == null ? void 0 : website.default_locale),
|
|
500
|
-
canonicalBase
|
|
507
|
+
canonicalBase,
|
|
508
|
+
canonicalBase + url
|
|
501
509
|
);
|
|
502
510
|
if (pageStructuredData) parts.push(pageStructuredData);
|
|
503
511
|
for (const graph of Array.isArray(override == null ? void 0 : override.structuredData) ? override.structuredData : (override == null ? void 0 : override.structuredData) ? [override.structuredData] : []) {
|
|
504
512
|
if (!graph || typeof graph !== "object") continue;
|
|
505
|
-
const resolved = absolutizeJsonLd(graph, canonicalBase);
|
|
513
|
+
const resolved = absolutizeJsonLd(graph, canonicalBase, canonicalBase + url);
|
|
506
514
|
parts.push(`<script type="application/ld+json">${JSON.stringify(resolved)}${"<"}/script>`);
|
|
507
515
|
}
|
|
508
516
|
if (stateScript) {
|
|
@@ -370,21 +370,27 @@ async function polyfillBloxSsgGlobals(options) {
|
|
|
370
370
|
g.window.document = _win.document;
|
|
371
371
|
}
|
|
372
372
|
const URL_KEYS = /* @__PURE__ */ new Set(["url", "image", "logo", "@id"]);
|
|
373
|
-
function absolutizeJsonLd(value, base) {
|
|
373
|
+
function absolutizeJsonLd(value, base, pageUrl) {
|
|
374
374
|
if (!base) return value;
|
|
375
|
-
if (Array.isArray(value)) return value.map((entry) => absolutizeJsonLd(entry, base));
|
|
375
|
+
if (Array.isArray(value)) return value.map((entry) => absolutizeJsonLd(entry, base, pageUrl));
|
|
376
376
|
if (!value || typeof value !== "object") return value;
|
|
377
377
|
const out = {};
|
|
378
378
|
for (const [key, entry] of Object.entries(value)) {
|
|
379
|
-
if (key !== "@context" && typeof entry === "string" && URL_KEYS.has(key)
|
|
380
|
-
|
|
381
|
-
|
|
379
|
+
if (key !== "@context" && typeof entry === "string" && URL_KEYS.has(key)) {
|
|
380
|
+
if (entry.startsWith("#") && pageUrl) {
|
|
381
|
+
out[key] = pageUrl + entry;
|
|
382
|
+
continue;
|
|
383
|
+
}
|
|
384
|
+
if (entry.startsWith("/")) {
|
|
385
|
+
out[key] = base + entry;
|
|
386
|
+
continue;
|
|
387
|
+
}
|
|
382
388
|
}
|
|
383
|
-
out[key] = absolutizeJsonLd(entry, base);
|
|
389
|
+
out[key] = absolutizeJsonLd(entry, base, pageUrl);
|
|
384
390
|
}
|
|
385
391
|
return out;
|
|
386
392
|
}
|
|
387
|
-
function buildStructuredData(sd, locale, base) {
|
|
393
|
+
function buildStructuredData(sd, locale, base, pageUrl) {
|
|
388
394
|
var _a;
|
|
389
395
|
if (!sd) return "";
|
|
390
396
|
const siteData = "org" in sd || "org_by_locale" in sd;
|
|
@@ -392,7 +398,7 @@ function buildStructuredData(sd, locale, base) {
|
|
|
392
398
|
const value = siteData ? perLocale ?? sd.org : sd;
|
|
393
399
|
if (value == null || typeof value === "string" && value === "") return "";
|
|
394
400
|
try {
|
|
395
|
-
const resolved = typeof value === "string" ? value : JSON.stringify(absolutizeJsonLd(value, base ?? ""));
|
|
401
|
+
const resolved = typeof value === "string" ? value : JSON.stringify(absolutizeJsonLd(value, base ?? "", pageUrl));
|
|
396
402
|
return `<script type="application/ld+json">${resolved}${"<"}/script>`;
|
|
397
403
|
} catch {
|
|
398
404
|
return "";
|
|
@@ -468,18 +474,20 @@ function buildPageHead(options) {
|
|
|
468
474
|
const structuredData = buildStructuredData(
|
|
469
475
|
website == null ? void 0 : website.structured_data,
|
|
470
476
|
locale || (website == null ? void 0 : website.default_locale),
|
|
471
|
-
canonicalBase
|
|
477
|
+
canonicalBase,
|
|
478
|
+
canonicalBase + url
|
|
472
479
|
);
|
|
473
480
|
if (structuredData) parts.push(structuredData);
|
|
474
481
|
const pageStructuredData = buildStructuredData(
|
|
475
482
|
page == null ? void 0 : page.structured_data,
|
|
476
483
|
locale || (website == null ? void 0 : website.default_locale),
|
|
477
|
-
canonicalBase
|
|
484
|
+
canonicalBase,
|
|
485
|
+
canonicalBase + url
|
|
478
486
|
);
|
|
479
487
|
if (pageStructuredData) parts.push(pageStructuredData);
|
|
480
488
|
for (const graph of Array.isArray(override == null ? void 0 : override.structuredData) ? override.structuredData : (override == null ? void 0 : override.structuredData) ? [override.structuredData] : []) {
|
|
481
489
|
if (!graph || typeof graph !== "object") continue;
|
|
482
|
-
const resolved = absolutizeJsonLd(graph, canonicalBase);
|
|
490
|
+
const resolved = absolutizeJsonLd(graph, canonicalBase, canonicalBase + url);
|
|
483
491
|
parts.push(`<script type="application/ld+json">${JSON.stringify(resolved)}${"<"}/script>`);
|
|
484
492
|
}
|
|
485
493
|
if (stateScript) {
|
package/package.json
CHANGED