@bagelink/blox 1.15.585 → 1.15.591
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 +48 -22
- package/dist/CmsPageView.vue.d.ts.map +1 -1
- package/dist/{PreviewApp-D208UMZs.js → PreviewApp-BagepqPk.js} +1 -1
- package/dist/{PreviewApp-DNMYw1AS.cjs → PreviewApp-HVipxMQ3.cjs} +1 -1
- package/dist/{PreviewApp.vue_vue_type_style_index_0_lang-Dm0SmjEr.cjs → PreviewApp.vue_vue_type_style_index_0_lang-C6e-tDzD.cjs} +6 -6
- package/dist/{PreviewApp.vue_vue_type_style_index_0_lang-l6QisbG-.js → PreviewApp.vue_vue_type_style_index_0_lang-Dl3bKQTA.js} +1 -1
- package/dist/api/index.d.ts +24 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/{routes-DDiQDksF.js → appRuntime-B6yWkH3M.js} +280 -82
- package/dist/{routes-DOcek9fP.cjs → appRuntime-D1Z3fX-G.cjs} +237 -39
- package/dist/appRuntime.d.ts +26 -0
- package/dist/appRuntime.d.ts.map +1 -0
- package/dist/composables/useLocale.d.ts +10 -3
- package/dist/composables/useLocale.d.ts.map +1 -1
- package/dist/content/routes.d.ts +4 -2
- package/dist/content/routes.d.ts.map +1 -1
- package/dist/content/useContentSeo.d.ts.map +1 -1
- package/dist/core.d.ts +2 -0
- package/dist/core.d.ts.map +1 -1
- package/dist/createBloxApp.d.ts +9 -19
- package/dist/createBloxApp.d.ts.map +1 -1
- package/dist/data/useData.d.ts.map +1 -1
- package/dist/index.cjs +91 -111
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +64 -84
- package/dist/{shard-runner-Bc4gTl71.js → shard-runner-DauYjwvg.js} +2 -2
- package/dist/{shard-runner-ZAwqteYY.cjs → shard-runner-xIPqGX-Q.cjs} +2 -2
- package/dist/ssg/cli.cjs +2 -4
- package/dist/ssg/cli.mjs +2 -4
- package/dist/ssg/client.cjs +0 -73
- package/dist/ssg/client.d.ts +1 -3
- package/dist/ssg/client.d.ts.map +1 -1
- package/dist/ssg/client.mjs +1 -74
- package/dist/ssg/constants.d.ts +0 -4
- package/dist/ssg/constants.d.ts.map +1 -1
- package/dist/ssg/createSSREntry.d.ts.map +1 -1
- package/dist/ssg/index.cjs +26 -47
- package/dist/ssg/index.d.ts +1 -3
- package/dist/ssg/index.d.ts.map +1 -1
- package/dist/ssg/index.mjs +24 -45
- package/dist/ssg/prerender.d.ts +1 -5
- package/dist/ssg/prerender.d.ts.map +1 -1
- package/dist/ssg/render-resolved-page.d.ts +0 -2
- package/dist/ssg/render-resolved-page.d.ts.map +1 -1
- package/dist/{validate-output-DRCseorw.js → validate-output-B56PuxEM.js} +0 -2
- package/dist/{validate-output-DlHgDBoV.cjs → validate-output-CRfMSrpx.cjs} +0 -2
- package/dist/vite-plugin.cjs +3 -64
- package/dist/vite-plugin.d.ts +0 -8
- package/dist/vite-plugin.d.ts.map +1 -1
- package/dist/vite-plugin.mjs +3 -64
- package/package.json +1 -1
- package/dist/ssg/collection-cache.d.ts +0 -53
- package/dist/ssg/collection-cache.d.ts.map +0 -1
- package/dist/ssg/state-cache.d.ts +0 -21
- package/dist/ssg/state-cache.d.ts.map +0 -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-CRfMSrpx.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-CRfMSrpx.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({
|
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-CRfMSrpx.cjs");
|
|
7
7
|
function installFetchTimeout() {
|
|
8
8
|
const ms = Number(process.env.BLOX_SSG_FETCH_TIMEOUT_MS) || 2e4;
|
|
9
9
|
const original = globalThis.fetch;
|
|
@@ -141,7 +141,7 @@ Environment:
|
|
|
141
141
|
if (shardsOpt !== null || routesCmd) {
|
|
142
142
|
const { apiBase: apiBase2, websiteName: configWebsiteName2 } = await resolveApiBase(mode);
|
|
143
143
|
const websiteName2 = process.env.WEBSITE_NAME ?? configWebsiteName2 ?? "default";
|
|
144
|
-
const { runSharded } = await Promise.resolve().then(() => require("../shard-runner-
|
|
144
|
+
const { runSharded } = await Promise.resolve().then(() => require("../shard-runner-xIPqGX-Q.cjs"));
|
|
145
145
|
const code = await runSharded({
|
|
146
146
|
shards: shardsOpt ?? "auto",
|
|
147
147
|
mode,
|
|
@@ -173,7 +173,6 @@ Environment:
|
|
|
173
173
|
let website = null;
|
|
174
174
|
let websiteId = "";
|
|
175
175
|
let redirects = [];
|
|
176
|
-
const collections = {};
|
|
177
176
|
let cmsPathSet = /* @__PURE__ */ new Set();
|
|
178
177
|
let cachedAppPaths = [];
|
|
179
178
|
const productionBuild = process.env.NODE_ENV === "production" || mode === "production";
|
|
@@ -236,7 +235,6 @@ Environment:
|
|
|
236
235
|
website,
|
|
237
236
|
websiteId,
|
|
238
237
|
redirects,
|
|
239
|
-
collections,
|
|
240
238
|
// LLM artifacts (llms.txt, llms-full.txt, per-page JSON-LD). On by
|
|
241
239
|
// default; opt out with BLOX_SSG_LLM=0. Skip the *file* artifacts when
|
|
242
240
|
// sharding (>1 shard) because the writing shard only has its own slice of
|
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, a as prerender } from "../validate-output-
|
|
5
|
+
import { v as validateSsgOutput, u as uploadBloxManifest, p as polyfillBloxSsgGlobals, f as fetchCmsSiteData, a as prerender } from "../validate-output-B56PuxEM.js";
|
|
6
6
|
function installFetchTimeout() {
|
|
7
7
|
const ms = Number(process.env.BLOX_SSG_FETCH_TIMEOUT_MS) || 2e4;
|
|
8
8
|
const original = globalThis.fetch;
|
|
@@ -140,7 +140,7 @@ Environment:
|
|
|
140
140
|
if (shardsOpt !== null || routesCmd) {
|
|
141
141
|
const { apiBase: apiBase2, websiteName: configWebsiteName2 } = await resolveApiBase(mode);
|
|
142
142
|
const websiteName2 = process.env.WEBSITE_NAME ?? configWebsiteName2 ?? "default";
|
|
143
|
-
const { runSharded } = await import("../shard-runner-
|
|
143
|
+
const { runSharded } = await import("../shard-runner-DauYjwvg.js");
|
|
144
144
|
const code = await runSharded({
|
|
145
145
|
shards: shardsOpt ?? "auto",
|
|
146
146
|
mode,
|
|
@@ -172,7 +172,6 @@ Environment:
|
|
|
172
172
|
let website = null;
|
|
173
173
|
let websiteId = "";
|
|
174
174
|
let redirects = [];
|
|
175
|
-
const collections = {};
|
|
176
175
|
let cmsPathSet = /* @__PURE__ */ new Set();
|
|
177
176
|
let cachedAppPaths = [];
|
|
178
177
|
const productionBuild = process.env.NODE_ENV === "production" || mode === "production";
|
|
@@ -235,7 +234,6 @@ Environment:
|
|
|
235
234
|
website,
|
|
236
235
|
websiteId,
|
|
237
236
|
redirects,
|
|
238
|
-
collections,
|
|
239
237
|
// LLM artifacts (llms.txt, llms-full.txt, per-page JSON-LD). On by
|
|
240
238
|
// default; opt out with BLOX_SSG_LLM=0. Skip the *file* artifacts when
|
|
241
239
|
// sharding (>1 shard) because the writing shard only has its own slice of
|
package/dist/ssg/client.cjs
CHANGED
|
@@ -1,81 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const BLOX_STATE_WINDOW_KEY = "__BLOX_STATE__";
|
|
4
|
-
const BLOX_COLLECTIONS_WINDOW_KEY = "__BLOX_COLLECTIONS__";
|
|
5
4
|
const BLOX_WEBSITE_ID_WINDOW_KEY = "__BLOX_WEBSITE_ID__";
|
|
6
5
|
const BLOX_DATA_WINDOW_KEY = "__BLOX_DATA__";
|
|
7
|
-
const BLOX_PAGE_SEO_WINDOW_KEY = "__BLOX_PAGE_SEO__";
|
|
8
|
-
let _cache = null;
|
|
9
|
-
function readCache() {
|
|
10
|
-
if (_cache != null) return _cache;
|
|
11
|
-
if (typeof window === "undefined") return null;
|
|
12
|
-
const raw = window[BLOX_COLLECTIONS_WINDOW_KEY];
|
|
13
|
-
if (raw && typeof raw === "object" && !Array.isArray(raw)) {
|
|
14
|
-
_cache = raw;
|
|
15
|
-
return _cache;
|
|
16
|
-
}
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
function getCollectionCache() {
|
|
20
|
-
return readCache();
|
|
21
|
-
}
|
|
22
|
-
function getEmbeddedWebsiteId() {
|
|
23
|
-
if (typeof window === "undefined") return "";
|
|
24
|
-
const id = window[BLOX_WEBSITE_ID_WINDOW_KEY];
|
|
25
|
-
return typeof id === "string" ? id : "";
|
|
26
|
-
}
|
|
27
|
-
function installCollectionCache() {
|
|
28
|
-
const cache = readCache();
|
|
29
|
-
if (!cache || Object.keys(cache).length === 0) return null;
|
|
30
|
-
return (config) => {
|
|
31
|
-
if (config.method && config.method.toLowerCase() !== "get") return config;
|
|
32
|
-
const url = config.url ?? "";
|
|
33
|
-
const match = url.match(/\/datastore\/([^/?]+)\/collections\/([^/?]+)/);
|
|
34
|
-
if (!match) return config;
|
|
35
|
-
const key = `${match[1]}/${match[2]}`;
|
|
36
|
-
if (cache[key] == null) return config;
|
|
37
|
-
const items = cache[key];
|
|
38
|
-
config.adapter = () => Promise.resolve({
|
|
39
|
-
data: items,
|
|
40
|
-
status: 200,
|
|
41
|
-
statusText: "OK",
|
|
42
|
-
headers: { "content-type": "application/json", "x-blox-cache": "hit" },
|
|
43
|
-
config
|
|
44
|
-
});
|
|
45
|
-
return config;
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
function installBloxStateCache(globalKey = BLOX_STATE_WINDOW_KEY) {
|
|
49
|
-
if (typeof window === "undefined") return;
|
|
50
|
-
const state = window[globalKey];
|
|
51
|
-
if (!state || typeof state !== "object" || Object.keys(state).length === 0) return;
|
|
52
|
-
const originalFetch = window.fetch.bind(window);
|
|
53
|
-
window.fetch = async function(input, init) {
|
|
54
|
-
const url = typeof input === "string" ? input : input instanceof URL ? input.href : input.url;
|
|
55
|
-
if (typeof url === "string" && url.includes("resolve-path")) {
|
|
56
|
-
try {
|
|
57
|
-
const parsed = new URL(url, window.location.origin);
|
|
58
|
-
const path = parsed.searchParams.get("path") ?? window.location.pathname;
|
|
59
|
-
if (path !== "" && state[path] != null) {
|
|
60
|
-
const cached = state[path];
|
|
61
|
-
delete state[path];
|
|
62
|
-
return new Response(JSON.stringify(cached), {
|
|
63
|
-
status: 200,
|
|
64
|
-
headers: { "Content-Type": "application/json" }
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
} catch {
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return originalFetch(input, init);
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
exports.BLOX_COLLECTIONS_WINDOW_KEY = BLOX_COLLECTIONS_WINDOW_KEY;
|
|
74
6
|
exports.BLOX_DATA_WINDOW_KEY = BLOX_DATA_WINDOW_KEY;
|
|
75
|
-
exports.BLOX_PAGE_SEO_WINDOW_KEY = BLOX_PAGE_SEO_WINDOW_KEY;
|
|
76
7
|
exports.BLOX_STATE_WINDOW_KEY = BLOX_STATE_WINDOW_KEY;
|
|
77
8
|
exports.BLOX_WEBSITE_ID_WINDOW_KEY = BLOX_WEBSITE_ID_WINDOW_KEY;
|
|
78
|
-
exports.getCollectionCache = getCollectionCache;
|
|
79
|
-
exports.getEmbeddedWebsiteId = getEmbeddedWebsiteId;
|
|
80
|
-
exports.installBloxStateCache = installBloxStateCache;
|
|
81
|
-
exports.installCollectionCache = installCollectionCache;
|
package/dist/ssg/client.d.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
export { getCollectionCache, getEmbeddedWebsiteId, installCollectionCache } from './collection-cache';
|
|
2
1
|
/**
|
|
3
2
|
* @bagelink/blox/ssg/client — browser-safe SSG utilities.
|
|
4
3
|
*
|
|
5
4
|
* Use this import in client entry files (main.ts / entry-client.ts).
|
|
6
5
|
* It does NOT pull in Node.js modules (fs, path, url, happy-dom).
|
|
7
6
|
*/
|
|
8
|
-
export {
|
|
9
|
-
export { installBloxStateCache } from './state-cache';
|
|
7
|
+
export { BLOX_DATA_WINDOW_KEY, BLOX_STATE_WINDOW_KEY, BLOX_WEBSITE_ID_WINDOW_KEY } from './constants';
|
|
10
8
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/ssg/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/ssg/client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/ssg/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/ssg/client.mjs
CHANGED
|
@@ -1,81 +1,8 @@
|
|
|
1
1
|
const BLOX_STATE_WINDOW_KEY = "__BLOX_STATE__";
|
|
2
|
-
const BLOX_COLLECTIONS_WINDOW_KEY = "__BLOX_COLLECTIONS__";
|
|
3
2
|
const BLOX_WEBSITE_ID_WINDOW_KEY = "__BLOX_WEBSITE_ID__";
|
|
4
3
|
const BLOX_DATA_WINDOW_KEY = "__BLOX_DATA__";
|
|
5
|
-
const BLOX_PAGE_SEO_WINDOW_KEY = "__BLOX_PAGE_SEO__";
|
|
6
|
-
let _cache = null;
|
|
7
|
-
function readCache() {
|
|
8
|
-
if (_cache != null) return _cache;
|
|
9
|
-
if (typeof window === "undefined") return null;
|
|
10
|
-
const raw = window[BLOX_COLLECTIONS_WINDOW_KEY];
|
|
11
|
-
if (raw && typeof raw === "object" && !Array.isArray(raw)) {
|
|
12
|
-
_cache = raw;
|
|
13
|
-
return _cache;
|
|
14
|
-
}
|
|
15
|
-
return null;
|
|
16
|
-
}
|
|
17
|
-
function getCollectionCache() {
|
|
18
|
-
return readCache();
|
|
19
|
-
}
|
|
20
|
-
function getEmbeddedWebsiteId() {
|
|
21
|
-
if (typeof window === "undefined") return "";
|
|
22
|
-
const id = window[BLOX_WEBSITE_ID_WINDOW_KEY];
|
|
23
|
-
return typeof id === "string" ? id : "";
|
|
24
|
-
}
|
|
25
|
-
function installCollectionCache() {
|
|
26
|
-
const cache = readCache();
|
|
27
|
-
if (!cache || Object.keys(cache).length === 0) return null;
|
|
28
|
-
return (config) => {
|
|
29
|
-
if (config.method && config.method.toLowerCase() !== "get") return config;
|
|
30
|
-
const url = config.url ?? "";
|
|
31
|
-
const match = url.match(/\/datastore\/([^/?]+)\/collections\/([^/?]+)/);
|
|
32
|
-
if (!match) return config;
|
|
33
|
-
const key = `${match[1]}/${match[2]}`;
|
|
34
|
-
if (cache[key] == null) return config;
|
|
35
|
-
const items = cache[key];
|
|
36
|
-
config.adapter = () => Promise.resolve({
|
|
37
|
-
data: items,
|
|
38
|
-
status: 200,
|
|
39
|
-
statusText: "OK",
|
|
40
|
-
headers: { "content-type": "application/json", "x-blox-cache": "hit" },
|
|
41
|
-
config
|
|
42
|
-
});
|
|
43
|
-
return config;
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
function installBloxStateCache(globalKey = BLOX_STATE_WINDOW_KEY) {
|
|
47
|
-
if (typeof window === "undefined") return;
|
|
48
|
-
const state = window[globalKey];
|
|
49
|
-
if (!state || typeof state !== "object" || Object.keys(state).length === 0) return;
|
|
50
|
-
const originalFetch = window.fetch.bind(window);
|
|
51
|
-
window.fetch = async function(input, init) {
|
|
52
|
-
const url = typeof input === "string" ? input : input instanceof URL ? input.href : input.url;
|
|
53
|
-
if (typeof url === "string" && url.includes("resolve-path")) {
|
|
54
|
-
try {
|
|
55
|
-
const parsed = new URL(url, window.location.origin);
|
|
56
|
-
const path = parsed.searchParams.get("path") ?? window.location.pathname;
|
|
57
|
-
if (path !== "" && state[path] != null) {
|
|
58
|
-
const cached = state[path];
|
|
59
|
-
delete state[path];
|
|
60
|
-
return new Response(JSON.stringify(cached), {
|
|
61
|
-
status: 200,
|
|
62
|
-
headers: { "Content-Type": "application/json" }
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
} catch {
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return originalFetch(input, init);
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
4
|
export {
|
|
72
|
-
BLOX_COLLECTIONS_WINDOW_KEY,
|
|
73
5
|
BLOX_DATA_WINDOW_KEY,
|
|
74
|
-
BLOX_PAGE_SEO_WINDOW_KEY,
|
|
75
6
|
BLOX_STATE_WINDOW_KEY,
|
|
76
|
-
BLOX_WEBSITE_ID_WINDOW_KEY
|
|
77
|
-
getCollectionCache,
|
|
78
|
-
getEmbeddedWebsiteId,
|
|
79
|
-
installBloxStateCache,
|
|
80
|
-
installCollectionCache
|
|
7
|
+
BLOX_WEBSITE_ID_WINDOW_KEY
|
|
81
8
|
};
|
package/dist/ssg/constants.d.ts
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
/** Global key for embedded prerender payload (must match client interceptor). */
|
|
2
2
|
export declare const BLOX_STATE_WINDOW_KEY: "__BLOX_STATE__";
|
|
3
|
-
/** Global key for pre-fetched datastore collections (keyed by "store/collection"). */
|
|
4
|
-
export declare const BLOX_COLLECTIONS_WINDOW_KEY: "__BLOX_COLLECTIONS__";
|
|
5
3
|
/** Global key for the pre-resolved website ID (avoids GET /blox/websites on client). */
|
|
6
4
|
export declare const BLOX_WEBSITE_ID_WINDOW_KEY: "__BLOX_WEBSITE_ID__";
|
|
7
5
|
/** Global key for `useData()` payload (keyed by composable cache key). */
|
|
8
6
|
export declare const BLOX_DATA_WINDOW_KEY: "__BLOX_DATA__";
|
|
9
|
-
/** Global key for `useSeo()` payload written during SSR for head injection. */
|
|
10
|
-
export declare const BLOX_PAGE_SEO_WINDOW_KEY: "__BLOX_PAGE_SEO__";
|
|
11
7
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/ssg/constants.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,eAAO,MAAM,qBAAqB,EAAG,gBAAyB,CAAA;AAE9D,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/ssg/constants.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,eAAO,MAAM,qBAAqB,EAAG,gBAAyB,CAAA;AAE9D,wFAAwF;AACxF,eAAO,MAAM,0BAA0B,EAAG,qBAA8B,CAAA;AAExE,0EAA0E;AAC1E,eAAO,MAAM,oBAAoB,EAAG,eAAwB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSSREntry.d.ts","sourceRoot":"","sources":["../../src/ssg/createSSREntry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"createSSREntry.d.ts","sourceRoot":"","sources":["../../src/ssg/createSSREntry.ts"],"names":[],"mappings":"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"}
|
package/dist/ssg/index.cjs
CHANGED
|
@@ -22,12 +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-CRfMSrpx.cjs");
|
|
26
26
|
const ssg_buildGrant = require("./build-grant.cjs");
|
|
27
27
|
const ssg_client = require("./client.cjs");
|
|
28
|
-
const pinia = require("pinia");
|
|
29
28
|
const vue = require("vue");
|
|
30
|
-
const
|
|
29
|
+
const appRuntime = require("../appRuntime-D1Z3fX-G.cjs");
|
|
31
30
|
async function renderBloxSsgPage(options) {
|
|
32
31
|
var _a, _b, _c, _d;
|
|
33
32
|
const {
|
|
@@ -53,7 +52,6 @@ async function renderBloxSsgPage(options) {
|
|
|
53
52
|
const ssrContext = {};
|
|
54
53
|
const html = await renderToString(app, ssrContext);
|
|
55
54
|
const stateScript = resolvedData != null ? `<script>window[${JSON.stringify(stateWindowKey)}]=${safeJson({ [stateKey]: resolvedData })};${"<"}/script>` : "";
|
|
56
|
-
const collectionsScript = "";
|
|
57
55
|
const websiteIdScript = websiteId ? `<script>window[${JSON.stringify(ssg_client.BLOX_WEBSITE_ID_WINDOW_KEY)}]=${JSON.stringify(websiteId)};${"<"}/script>` : "";
|
|
58
56
|
const seoHead = dataRegistry && collectSeo ? collectSeo(dataRegistry) : void 0;
|
|
59
57
|
const seoOverride = seoHead && Object.keys(seoHead).length > 0 ? seoHead : void 0;
|
|
@@ -72,14 +70,14 @@ async function renderBloxSsgPage(options) {
|
|
|
72
70
|
`Blox hydration payload for "${url}" is ${dataBytes} bytes (limit ${maxDataBytes}); largest keys: ${largest}`
|
|
73
71
|
);
|
|
74
72
|
}
|
|
75
|
-
const dataScript = Object.keys(bloxData).length > 0 ? `<script>window[${JSON.stringify(
|
|
73
|
+
const dataScript = Object.keys(bloxData).length > 0 ? `<script>window[${JSON.stringify(appRuntime.BLOX_DATA_WINDOW_KEY)}]=${serializedData};${"<"}/script>` : "";
|
|
76
74
|
let head = llmArtifacts.buildPageHead({
|
|
77
75
|
url,
|
|
78
76
|
resolvedData,
|
|
79
77
|
website,
|
|
80
78
|
locale,
|
|
81
79
|
override: seoOverride,
|
|
82
|
-
stateScript: [stateScript,
|
|
80
|
+
stateScript: [stateScript, websiteIdScript, dataScript].filter(Boolean).join("\n")
|
|
83
81
|
});
|
|
84
82
|
const seoData = resolvedData;
|
|
85
83
|
const primary = llmArtifacts.primaryContextEntry(seoData == null ? void 0 : seoData.contexts);
|
|
@@ -174,8 +172,6 @@ function createBloxSSREntry(options) {
|
|
|
174
172
|
const apiBase = options.apiBase ?? (typeof process !== "undefined" ? (_a = process.env) == null ? void 0 : _a.BAGELINK_API_URL : void 0) ?? "https://api.bagel.to";
|
|
175
173
|
let websiteIdCache = null;
|
|
176
174
|
const publishedBundleCache = /* @__PURE__ */ new Map();
|
|
177
|
-
routes.setApiOrigin(apiBase);
|
|
178
|
-
routes.setCollectionResolver(options.collectionResolver ?? null);
|
|
179
175
|
async function getWebsiteId() {
|
|
180
176
|
var _a2, _b, _c;
|
|
181
177
|
if (websiteIdCache) return websiteIdCache;
|
|
@@ -238,54 +234,44 @@ function createBloxSSREntry(options) {
|
|
|
238
234
|
}
|
|
239
235
|
}
|
|
240
236
|
function buildApp(url, resolvedData, stateKey) {
|
|
237
|
+
const pageLocale = detectLocale(url).locale;
|
|
241
238
|
const router = createRouter("memory", url);
|
|
242
239
|
const app = vue.createSSRApp({
|
|
243
240
|
name: "BloxSsgRoot",
|
|
244
241
|
render: () => vue.h(vue.Suspense, null, { default: () => vue.h(rootComponent) })
|
|
245
242
|
});
|
|
246
|
-
const dataRegistry =
|
|
247
|
-
|
|
243
|
+
const dataRegistry = appRuntime.provideBloxData(app, { server: true });
|
|
244
|
+
const api = appRuntime.provideBloxApi(app, {
|
|
245
|
+
websiteName,
|
|
246
|
+
store,
|
|
247
|
+
origin: apiBase,
|
|
248
|
+
collectionResolver: options.collectionResolver
|
|
249
|
+
});
|
|
250
|
+
const localeState = appRuntime.provideBloxLocale(app, pageLocale);
|
|
251
|
+
app.provide(appRuntime.BLOX_SSR_ROUTE_STATE_KEY, {
|
|
248
252
|
path: stateKey,
|
|
249
253
|
resolved: resolvedData
|
|
250
254
|
});
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
});
|
|
255
|
-
const blox = routes.createBlox({
|
|
255
|
+
appRuntime.installBloxRuntime({
|
|
256
|
+
app,
|
|
257
|
+
router,
|
|
256
258
|
modules,
|
|
257
259
|
websiteName,
|
|
258
260
|
store,
|
|
259
|
-
|
|
261
|
+
locale,
|
|
260
262
|
supportedLocales,
|
|
261
|
-
|
|
263
|
+
plugins,
|
|
264
|
+
globalComponents,
|
|
265
|
+
setup: userSetup,
|
|
266
|
+
api,
|
|
267
|
+
localeState
|
|
262
268
|
});
|
|
263
|
-
|
|
264
|
-
if (Array.isArray(plugin)) {
|
|
265
|
-
const [p, ...args] = plugin;
|
|
266
|
-
app.use(p, ...args);
|
|
267
|
-
} else {
|
|
268
|
-
app.use(plugin);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
routes.setActiveLocale(detectLocale(url).locale);
|
|
272
|
-
blox.install(app, {});
|
|
273
|
-
app.use(pinia$1);
|
|
274
|
-
app.use(router);
|
|
275
|
-
for (const record of routes.generateContentRoutes(supportedLocales, locale)) {
|
|
276
|
-
if (!router.hasRoute(record.name)) router.addRoute(record);
|
|
277
|
-
}
|
|
278
|
-
routes.installLocaleAwareResolve(router, blox.strategy);
|
|
279
|
-
for (const [name, comp] of Object.entries(globalComponents)) {
|
|
280
|
-
app.component(name, comp);
|
|
281
|
-
}
|
|
282
|
-
userSetup == null ? void 0 : userSetup(app);
|
|
269
|
+
appRuntime.setActiveLocale(pageLocale, localeState);
|
|
283
270
|
return { app, router, dataRegistry };
|
|
284
271
|
}
|
|
285
272
|
async function render(url, ctx) {
|
|
286
273
|
var _a2;
|
|
287
274
|
const { locale: pageLocale, slug } = detectLocale(url);
|
|
288
|
-
routes.setActiveLocale(pageLocale);
|
|
289
275
|
let resolvedData = null;
|
|
290
276
|
if ((_a2 = ctx.resolveCache) == null ? void 0 : _a2.has(url)) {
|
|
291
277
|
resolvedData = ctx.resolveCache.get(url) ?? null;
|
|
@@ -302,11 +288,10 @@ function createBloxSSREntry(options) {
|
|
|
302
288
|
resolvedData,
|
|
303
289
|
renderToString,
|
|
304
290
|
createAppForUrl: buildApp,
|
|
305
|
-
collectData:
|
|
306
|
-
collectSeo:
|
|
291
|
+
collectData: appRuntime.collectBloxData,
|
|
292
|
+
collectSeo: appRuntime.collectBloxSeo,
|
|
307
293
|
website: ctx.website,
|
|
308
294
|
websiteId: ctx.websiteId,
|
|
309
|
-
collections: ctx.collections,
|
|
310
295
|
llm: ctx.llm
|
|
311
296
|
});
|
|
312
297
|
}
|
|
@@ -414,15 +399,9 @@ exports.uploadBloxManifest = llmArtifacts.uploadBloxManifest;
|
|
|
414
399
|
exports.validateSsgOutput = llmArtifacts.validateSsgOutput;
|
|
415
400
|
exports.parseBloxBuildGrantBody = ssg_buildGrant.parseBloxBuildGrantBody;
|
|
416
401
|
exports.resolveBloxBuildGrant = ssg_buildGrant.resolveBloxBuildGrant;
|
|
417
|
-
exports.BLOX_COLLECTIONS_WINDOW_KEY = ssg_client.BLOX_COLLECTIONS_WINDOW_KEY;
|
|
418
402
|
exports.BLOX_DATA_WINDOW_KEY = ssg_client.BLOX_DATA_WINDOW_KEY;
|
|
419
|
-
exports.BLOX_PAGE_SEO_WINDOW_KEY = ssg_client.BLOX_PAGE_SEO_WINDOW_KEY;
|
|
420
403
|
exports.BLOX_STATE_WINDOW_KEY = ssg_client.BLOX_STATE_WINDOW_KEY;
|
|
421
404
|
exports.BLOX_WEBSITE_ID_WINDOW_KEY = ssg_client.BLOX_WEBSITE_ID_WINDOW_KEY;
|
|
422
|
-
exports.getCollectionCache = ssg_client.getCollectionCache;
|
|
423
|
-
exports.getEmbeddedWebsiteId = ssg_client.getEmbeddedWebsiteId;
|
|
424
|
-
exports.installBloxStateCache = ssg_client.installBloxStateCache;
|
|
425
|
-
exports.installCollectionCache = ssg_client.installCollectionCache;
|
|
426
405
|
exports.createBloxSSREntry = createBloxSSREntry;
|
|
427
406
|
exports.fetchDatastoreSnapshot = fetchDatastoreSnapshot;
|
|
428
407
|
exports.querySnapshotRows = querySnapshotRows;
|
package/dist/ssg/index.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ export { BloxBuildResponseError, bloxBuildJson, bloxBuildRequest, getBloxBuildRe
|
|
|
4
4
|
export { parseBloxBuildGrantBody, resolveBloxBuildGrant } from './build-grant';
|
|
5
5
|
export type { BloxBuildGrant, ResolveBloxBuildGrantOptions } from './build-grant';
|
|
6
6
|
export type { BloxBuildRequestOptions } from './build-request';
|
|
7
|
-
export { getCollectionCache, getEmbeddedWebsiteId, installCollectionCache } from './collection-cache';
|
|
8
7
|
/**
|
|
9
8
|
* @bagelink/blox/ssg — Static Site Generation helpers for Blox CMS sites.
|
|
10
9
|
*
|
|
@@ -16,7 +15,7 @@ export { getCollectionCache, getEmbeddedWebsiteId, installCollectionCache } from
|
|
|
16
15
|
* - Full prerender orchestrator with crawl support
|
|
17
16
|
* - SEO asset generation (sitemap.xml, robots.txt, _redirects)
|
|
18
17
|
*/
|
|
19
|
-
export {
|
|
18
|
+
export { BLOX_DATA_WINDOW_KEY, BLOX_STATE_WINDOW_KEY, BLOX_WEBSITE_ID_WINDOW_KEY } from './constants';
|
|
20
19
|
export { createBloxSSREntry } from './createSSREntry';
|
|
21
20
|
export type { BloxSSREntry, CreateBloxSSREntryOptions } from './createSSREntry';
|
|
22
21
|
export { fetchDatastoreSnapshot, querySnapshotRows, snapshotRows } from './datastore-snapshot';
|
|
@@ -30,7 +29,6 @@ export { buildPageHead, buildSiteHead, generateNetlifyRedirects, generateRobotsT
|
|
|
30
29
|
export type { RedirectEntry, SeoPageData, SitemapArtifact, SitemapRoute } from './seo';
|
|
31
30
|
export { buildJsonLd, extractPageText, generateLlmsFullTxt, generateLlmsTxt, mergeLlmParts } from './llm-artifacts';
|
|
32
31
|
export type { LlmArtifactsConfig, LlmPageEntry } from './llm-artifacts';
|
|
33
|
-
export { installBloxStateCache } from './state-cache';
|
|
34
32
|
export { resolveManifestProvenance, uploadBloxManifest } from './manifest-upload';
|
|
35
33
|
export type { ManifestProvenance, ManifestUpload } from './manifest-upload';
|
|
36
34
|
export { validateSsgOutput } from './validate-output';
|
package/dist/ssg/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ssg/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACvE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AACrH,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAC9E,YAAY,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAA;AACjF,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAC9D
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ssg/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACvE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AACrH,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAC9E,YAAY,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAA;AACjF,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAC9D;;;;;;;;;;GAUG;AACH,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AACrG,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,YAAY,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AAC/E,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAC9F,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,OAAO,CAAA;AACxO,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AACtF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACnH,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACvE,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACjF,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,YAAY,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/ssg/index.mjs
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { b as buildPageHead, c as primaryContextEntry, d as buildJsonLd, e as extractPageText, B as BloxBuildResponseError, h as bloxBuildJson } from "../validate-output-
|
|
2
|
-
import { i, j, k, f, l, m, n, o, g, q, r, s, t, w, x, p, a, y, z, u, v } from "../validate-output-
|
|
1
|
+
import { b as buildPageHead, c as primaryContextEntry, d as buildJsonLd, e as extractPageText, B as BloxBuildResponseError, h as bloxBuildJson } from "../validate-output-B56PuxEM.js";
|
|
2
|
+
import { i, j, k, f, l, m, n, o, g, q, r, s, t, w, x, p, a, y, z, u, v } from "../validate-output-B56PuxEM.js";
|
|
3
3
|
import { parseBloxBuildGrantBody, resolveBloxBuildGrant } from "./build-grant.mjs";
|
|
4
4
|
import { BLOX_STATE_WINDOW_KEY, BLOX_WEBSITE_ID_WINDOW_KEY } from "./client.mjs";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { B as BLOX_DATA_WINDOW_KEY2, s as setApiOrigin, a as setCollectionResolver, b as setActiveLocale, c as collectBloxData, d as collectBloxSeo, p as provideBloxData, e as BLOX_SSR_ROUTE_STATE_KEY, f as createBlox, g as generateContentRoutes, i as installLocaleAwareResolve } from "../routes-DDiQDksF.js";
|
|
5
|
+
import { BLOX_DATA_WINDOW_KEY } from "./client.mjs";
|
|
6
|
+
import { createSSRApp, h, Suspense } from "vue";
|
|
7
|
+
import { B as BLOX_DATA_WINDOW_KEY2, c as collectBloxData, a as collectBloxSeo, p as provideBloxData, b as provideBloxApi, d as provideBloxLocale, e as BLOX_SSR_ROUTE_STATE_KEY, i as installBloxRuntime, s as setActiveLocale } from "../appRuntime-B6yWkH3M.js";
|
|
9
8
|
async function renderBloxSsgPage(options) {
|
|
10
9
|
var _a, _b, _c, _d;
|
|
11
10
|
const {
|
|
@@ -31,7 +30,6 @@ async function renderBloxSsgPage(options) {
|
|
|
31
30
|
const ssrContext = {};
|
|
32
31
|
const html = await renderToString(app, ssrContext);
|
|
33
32
|
const stateScript = resolvedData != null ? `<script>window[${JSON.stringify(stateWindowKey)}]=${safeJson({ [stateKey]: resolvedData })};${"<"}/script>` : "";
|
|
34
|
-
const collectionsScript = "";
|
|
35
33
|
const websiteIdScript = websiteId ? `<script>window[${JSON.stringify(BLOX_WEBSITE_ID_WINDOW_KEY)}]=${JSON.stringify(websiteId)};${"<"}/script>` : "";
|
|
36
34
|
const seoHead = dataRegistry && collectSeo ? collectSeo(dataRegistry) : void 0;
|
|
37
35
|
const seoOverride = seoHead && Object.keys(seoHead).length > 0 ? seoHead : void 0;
|
|
@@ -57,7 +55,7 @@ async function renderBloxSsgPage(options) {
|
|
|
57
55
|
website,
|
|
58
56
|
locale,
|
|
59
57
|
override: seoOverride,
|
|
60
|
-
stateScript: [stateScript,
|
|
58
|
+
stateScript: [stateScript, websiteIdScript, dataScript].filter(Boolean).join("\n")
|
|
61
59
|
});
|
|
62
60
|
const seoData = resolvedData;
|
|
63
61
|
const primary = primaryContextEntry(seoData == null ? void 0 : seoData.contexts);
|
|
@@ -152,8 +150,6 @@ function createBloxSSREntry(options) {
|
|
|
152
150
|
const apiBase = options.apiBase ?? (typeof process !== "undefined" ? (_a = process.env) == null ? void 0 : _a.BAGELINK_API_URL : void 0) ?? "https://api.bagel.to";
|
|
153
151
|
let websiteIdCache = null;
|
|
154
152
|
const publishedBundleCache = /* @__PURE__ */ new Map();
|
|
155
|
-
setApiOrigin(apiBase);
|
|
156
|
-
setCollectionResolver(options.collectionResolver ?? null);
|
|
157
153
|
async function getWebsiteId() {
|
|
158
154
|
var _a2, _b, _c;
|
|
159
155
|
if (websiteIdCache) return websiteIdCache;
|
|
@@ -216,54 +212,44 @@ function createBloxSSREntry(options) {
|
|
|
216
212
|
}
|
|
217
213
|
}
|
|
218
214
|
function buildApp(url, resolvedData, stateKey) {
|
|
215
|
+
const pageLocale = detectLocale(url).locale;
|
|
219
216
|
const router = createRouter("memory", url);
|
|
220
217
|
const app = createSSRApp({
|
|
221
218
|
name: "BloxSsgRoot",
|
|
222
219
|
render: () => h(Suspense, null, { default: () => h(rootComponent) })
|
|
223
220
|
});
|
|
224
221
|
const dataRegistry = provideBloxData(app, { server: true });
|
|
222
|
+
const api = provideBloxApi(app, {
|
|
223
|
+
websiteName,
|
|
224
|
+
store,
|
|
225
|
+
origin: apiBase,
|
|
226
|
+
collectionResolver: options.collectionResolver
|
|
227
|
+
});
|
|
228
|
+
const localeState = provideBloxLocale(app, pageLocale);
|
|
225
229
|
app.provide(BLOX_SSR_ROUTE_STATE_KEY, {
|
|
226
230
|
path: stateKey,
|
|
227
231
|
resolved: resolvedData
|
|
228
232
|
});
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
});
|
|
233
|
-
const blox = createBlox({
|
|
233
|
+
installBloxRuntime({
|
|
234
|
+
app,
|
|
235
|
+
router,
|
|
234
236
|
modules,
|
|
235
237
|
websiteName,
|
|
236
238
|
store,
|
|
237
|
-
|
|
239
|
+
locale,
|
|
238
240
|
supportedLocales,
|
|
239
|
-
|
|
241
|
+
plugins,
|
|
242
|
+
globalComponents,
|
|
243
|
+
setup: userSetup,
|
|
244
|
+
api,
|
|
245
|
+
localeState
|
|
240
246
|
});
|
|
241
|
-
|
|
242
|
-
if (Array.isArray(plugin)) {
|
|
243
|
-
const [p2, ...args] = plugin;
|
|
244
|
-
app.use(p2, ...args);
|
|
245
|
-
} else {
|
|
246
|
-
app.use(plugin);
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
setActiveLocale(detectLocale(url).locale);
|
|
250
|
-
blox.install(app, {});
|
|
251
|
-
app.use(pinia);
|
|
252
|
-
app.use(router);
|
|
253
|
-
for (const record of generateContentRoutes(supportedLocales, locale)) {
|
|
254
|
-
if (!router.hasRoute(record.name)) router.addRoute(record);
|
|
255
|
-
}
|
|
256
|
-
installLocaleAwareResolve(router, blox.strategy);
|
|
257
|
-
for (const [name, comp] of Object.entries(globalComponents)) {
|
|
258
|
-
app.component(name, comp);
|
|
259
|
-
}
|
|
260
|
-
userSetup == null ? void 0 : userSetup(app);
|
|
247
|
+
setActiveLocale(pageLocale, localeState);
|
|
261
248
|
return { app, router, dataRegistry };
|
|
262
249
|
}
|
|
263
250
|
async function render(url, ctx) {
|
|
264
251
|
var _a2;
|
|
265
252
|
const { locale: pageLocale, slug } = detectLocale(url);
|
|
266
|
-
setActiveLocale(pageLocale);
|
|
267
253
|
let resolvedData = null;
|
|
268
254
|
if ((_a2 = ctx.resolveCache) == null ? void 0 : _a2.has(url)) {
|
|
269
255
|
resolvedData = ctx.resolveCache.get(url) ?? null;
|
|
@@ -284,7 +270,6 @@ function createBloxSSREntry(options) {
|
|
|
284
270
|
collectSeo: collectBloxSeo,
|
|
285
271
|
website: ctx.website,
|
|
286
272
|
websiteId: ctx.websiteId,
|
|
287
|
-
collections: ctx.collections,
|
|
288
273
|
llm: ctx.llm
|
|
289
274
|
});
|
|
290
275
|
}
|
|
@@ -365,9 +350,7 @@ function querySnapshotRows(snapshot, options) {
|
|
|
365
350
|
return rows;
|
|
366
351
|
}
|
|
367
352
|
export {
|
|
368
|
-
BLOX_COLLECTIONS_WINDOW_KEY,
|
|
369
353
|
BLOX_DATA_WINDOW_KEY,
|
|
370
|
-
BLOX_PAGE_SEO_WINDOW_KEY,
|
|
371
354
|
BLOX_STATE_WINDOW_KEY,
|
|
372
355
|
BLOX_WEBSITE_ID_WINDOW_KEY,
|
|
373
356
|
BloxBuildResponseError,
|
|
@@ -389,11 +372,7 @@ export {
|
|
|
389
372
|
q as generateSitemapIndexXml,
|
|
390
373
|
r as generateSitemapXml,
|
|
391
374
|
s as getBloxBuildRequestOptions,
|
|
392
|
-
getCollectionCache,
|
|
393
|
-
getEmbeddedWebsiteId,
|
|
394
375
|
t as getSiteIconFlags,
|
|
395
|
-
installBloxStateCache,
|
|
396
|
-
installCollectionCache,
|
|
397
376
|
w as localeSitemapPath,
|
|
398
377
|
x as mergeLlmParts,
|
|
399
378
|
parseBloxBuildGrantBody,
|