@bagelink/blox 1.15.340 → 1.15.344
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/{prerender-DeKrwYJJ.cjs → prerender-BWpb4ASq.cjs} +3 -18
- package/dist/{prerender-zsOtzM-D.js → prerender-DyPDRA5B.js} +9 -24
- package/dist/{shard-runner-3TU-L8Tu.cjs → shard-runner-CDbjJ3La.cjs} +17 -12
- package/dist/{shard-runner-zlAzg5_5.js → shard-runner-CGoEKvk3.js} +17 -12
- package/dist/ssg/cli.cjs +17 -34
- package/dist/ssg/cli.mjs +15 -32
- package/dist/ssg/index.cjs +27 -27
- package/dist/ssg/index.mjs +2 -2
- package/dist/ssg/prerender.d.ts +3 -1
- package/dist/ssg/prerender.d.ts.map +1 -1
- package/dist/ssg/shard-runner.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -72,16 +72,6 @@ function localizePath(slug, locale, defaultLocale) {
|
|
|
72
72
|
const s = slug === "" || slug === "/" ? "" : slug;
|
|
73
73
|
return `/${locale}${s}`;
|
|
74
74
|
}
|
|
75
|
-
function expandLocalePaths(paths, defaultLocale, supportedLocales) {
|
|
76
|
-
const locales = supportedLocales.length > 0 ? supportedLocales : [defaultLocale];
|
|
77
|
-
const out = [];
|
|
78
|
-
for (const slug of paths) {
|
|
79
|
-
for (const loc of locales) {
|
|
80
|
-
out.push(localizePath(slug, loc, defaultLocale));
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return [...new Set(out)];
|
|
84
|
-
}
|
|
85
75
|
async function fetchCmsSiteData(apiBase, websiteName, requestOptions = {}) {
|
|
86
76
|
const sitesData = await bloxBuildJson(`${apiBase}/blox/websites`, {}, requestOptions);
|
|
87
77
|
const sites = Array.isArray(sitesData) ? sitesData : sitesData.data ?? [];
|
|
@@ -174,12 +164,6 @@ function extractCollectionRefs(pages) {
|
|
|
174
164
|
}
|
|
175
165
|
return refs;
|
|
176
166
|
}
|
|
177
|
-
const cmsRoutes = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
178
|
-
__proto__: null,
|
|
179
|
-
expandLocalePaths,
|
|
180
|
-
fetchCmsPrerenderPaths,
|
|
181
|
-
fetchCmsSiteData
|
|
182
|
-
}, Symbol.toStringTag, { value: "Module" }));
|
|
183
167
|
async function polyfillBloxSsgGlobals(options) {
|
|
184
168
|
const { env: env2 } = await import("node:process");
|
|
185
169
|
const pageUrl = (options == null ? void 0 : options.pageUrl) ?? env2.BAGELINK_API_URL ?? "https://example.com/";
|
|
@@ -659,6 +643,7 @@ async function prerender({
|
|
|
659
643
|
* prefetch (render resolves inline). Default 8.
|
|
660
644
|
*/
|
|
661
645
|
resolvePrefetchConcurrency = 8,
|
|
646
|
+
appPaths = [],
|
|
662
647
|
mode = "dir",
|
|
663
648
|
website = null,
|
|
664
649
|
websiteId = "",
|
|
@@ -704,9 +689,10 @@ async function prerender({
|
|
|
704
689
|
const failures = [];
|
|
705
690
|
const resolveCache = /* @__PURE__ */ new Map();
|
|
706
691
|
const prefetch = serverMod.prefetchResolve;
|
|
692
|
+
const appPathSet = new Set(appPaths ?? []);
|
|
707
693
|
async function runResolvePrefetch() {
|
|
708
694
|
if (!prefetch || resolvePrefetchConcurrency <= 0) return;
|
|
709
|
-
const targets = [...new Set(paths)].filter((p) => p && !isExcluded(p));
|
|
695
|
+
const targets = [...new Set(paths)].filter((p) => p && !isExcluded(p) && !appPathSet.has(p));
|
|
710
696
|
let idx = 0;
|
|
711
697
|
async function prefetchWorker() {
|
|
712
698
|
while (idx < targets.length) {
|
|
@@ -967,7 +953,6 @@ exports.bloxBuildRequest = bloxBuildRequest;
|
|
|
967
953
|
exports.buildJsonLd = buildJsonLd;
|
|
968
954
|
exports.buildPageHead = buildPageHead;
|
|
969
955
|
exports.buildSiteHead = buildSiteHead;
|
|
970
|
-
exports.cmsRoutes = cmsRoutes;
|
|
971
956
|
exports.extractPageText = extractPageText;
|
|
972
957
|
exports.fetchCmsPrerenderPaths = fetchCmsPrerenderPaths;
|
|
973
958
|
exports.fetchCmsSiteData = fetchCmsSiteData;
|
|
@@ -49,16 +49,6 @@ function localizePath(slug, locale, defaultLocale) {
|
|
|
49
49
|
const s = slug === "" || slug === "/" ? "" : slug;
|
|
50
50
|
return `/${locale}${s}`;
|
|
51
51
|
}
|
|
52
|
-
function expandLocalePaths(paths, defaultLocale, supportedLocales) {
|
|
53
|
-
const locales = supportedLocales.length > 0 ? supportedLocales : [defaultLocale];
|
|
54
|
-
const out = [];
|
|
55
|
-
for (const slug of paths) {
|
|
56
|
-
for (const loc of locales) {
|
|
57
|
-
out.push(localizePath(slug, loc, defaultLocale));
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return [...new Set(out)];
|
|
61
|
-
}
|
|
62
52
|
async function fetchCmsSiteData(apiBase, websiteName, requestOptions = {}) {
|
|
63
53
|
const sitesData = await bloxBuildJson(`${apiBase}/blox/websites`, {}, requestOptions);
|
|
64
54
|
const sites = Array.isArray(sitesData) ? sitesData : sitesData.data ?? [];
|
|
@@ -151,12 +141,6 @@ function extractCollectionRefs(pages) {
|
|
|
151
141
|
}
|
|
152
142
|
return refs;
|
|
153
143
|
}
|
|
154
|
-
const cmsRoutes = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
155
|
-
__proto__: null,
|
|
156
|
-
expandLocalePaths,
|
|
157
|
-
fetchCmsPrerenderPaths,
|
|
158
|
-
fetchCmsSiteData
|
|
159
|
-
}, Symbol.toStringTag, { value: "Module" }));
|
|
160
144
|
async function polyfillBloxSsgGlobals(options) {
|
|
161
145
|
const { env: env2 } = await import("node:process");
|
|
162
146
|
const pageUrl = (options == null ? void 0 : options.pageUrl) ?? env2.BAGELINK_API_URL ?? "https://example.com/";
|
|
@@ -636,6 +620,7 @@ async function prerender({
|
|
|
636
620
|
* prefetch (render resolves inline). Default 8.
|
|
637
621
|
*/
|
|
638
622
|
resolvePrefetchConcurrency = 8,
|
|
623
|
+
appPaths = [],
|
|
639
624
|
mode = "dir",
|
|
640
625
|
website = null,
|
|
641
626
|
websiteId = "",
|
|
@@ -681,9 +666,10 @@ async function prerender({
|
|
|
681
666
|
const failures = [];
|
|
682
667
|
const resolveCache = /* @__PURE__ */ new Map();
|
|
683
668
|
const prefetch = serverMod.prefetchResolve;
|
|
669
|
+
const appPathSet = new Set(appPaths ?? []);
|
|
684
670
|
async function runResolvePrefetch() {
|
|
685
671
|
if (!prefetch || resolvePrefetchConcurrency <= 0) return;
|
|
686
|
-
const targets = [...new Set(paths)].filter((p) => p && !isExcluded(p));
|
|
672
|
+
const targets = [...new Set(paths)].filter((p) => p && !isExcluded(p) && !appPathSet.has(p));
|
|
687
673
|
let idx = 0;
|
|
688
674
|
async function prefetchWorker() {
|
|
689
675
|
while (idx < targets.length) {
|
|
@@ -941,12 +927,12 @@ function discoverInternalLinks(html) {
|
|
|
941
927
|
export {
|
|
942
928
|
BloxBuildResponseError as B,
|
|
943
929
|
prerender as a,
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
930
|
+
buildPageHead as b,
|
|
931
|
+
primaryContextEntry as c,
|
|
932
|
+
buildJsonLd as d,
|
|
933
|
+
extractPageText as e,
|
|
948
934
|
fetchCmsSiteData as f,
|
|
949
|
-
|
|
935
|
+
bloxBuildJson as g,
|
|
950
936
|
bloxBuildRequest as h,
|
|
951
937
|
buildSiteHead as i,
|
|
952
938
|
fetchCmsPrerenderPaths as j,
|
|
@@ -959,6 +945,5 @@ export {
|
|
|
959
945
|
getBloxBuildRequestOptions as q,
|
|
960
946
|
getSiteIconFlags as r,
|
|
961
947
|
mergeLlmParts as s,
|
|
962
|
-
|
|
963
|
-
llmArtifacts as u
|
|
948
|
+
llmArtifacts as t
|
|
964
949
|
};
|
|
@@ -26,6 +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("./prerender-BWpb4ASq.cjs");
|
|
29
30
|
const AUTO_SHARD_CAP = Number(process.env.BLOX_SSG_SHARD_CAP) || 6;
|
|
30
31
|
const PREFETCH_BUDGET = Number(process.env.BLOX_SSG_PREFETCH_BUDGET) || 24;
|
|
31
32
|
function resolveShardCount(shards) {
|
|
@@ -49,7 +50,7 @@ async function enumerateRoutes(cmd) {
|
|
|
49
50
|
);
|
|
50
51
|
});
|
|
51
52
|
}
|
|
52
|
-
function runShard(index, total, paths, opts, llmPartsDir) {
|
|
53
|
+
function runShard(index, total, paths, opts, llmPartsDir, siteDataFile) {
|
|
53
54
|
return new Promise((resolve) => {
|
|
54
55
|
const cliEntry = process.argv[1];
|
|
55
56
|
const shardArgs = [
|
|
@@ -57,6 +58,7 @@ function runShard(index, total, paths, opts, llmPartsDir) {
|
|
|
57
58
|
`--shard=${index}/${total}`,
|
|
58
59
|
"--no-crawl",
|
|
59
60
|
`--llm-parts=${path.join(llmPartsDir, `part.${index}.json`)}`,
|
|
61
|
+
`--site-data=${siteDataFile}`,
|
|
60
62
|
...opts.passthroughArgs,
|
|
61
63
|
...paths
|
|
62
64
|
];
|
|
@@ -78,18 +80,26 @@ function runShard(index, total, paths, opts, llmPartsDir) {
|
|
|
78
80
|
}
|
|
79
81
|
async function runSharded(opts) {
|
|
80
82
|
const total = resolveShardCount(opts.shards);
|
|
83
|
+
const fs = await import("node:fs/promises");
|
|
81
84
|
const paths = [...opts.extraPaths];
|
|
82
85
|
if (opts.routesCmd) {
|
|
83
86
|
const enumerated = await enumerateRoutes(opts.routesCmd);
|
|
84
87
|
for (const p of enumerated) if (!paths.includes(p)) paths.push(p);
|
|
85
88
|
console.log(`[blox-ssg] routes-cmd enumerated ${enumerated.length} route(s)`);
|
|
86
89
|
}
|
|
90
|
+
const siteData = await llmArtifacts.fetchCmsSiteData(opts.apiBase, opts.websiteName);
|
|
91
|
+
for (const p of siteData.paths) if (!paths.includes(p)) paths.push(p);
|
|
87
92
|
console.log(`[blox-ssg] sharded run · ${total} shard(s) · ${paths.length} extra path(s)`);
|
|
88
93
|
const llmPartsDir = path.resolve("dist", ".llm-parts");
|
|
89
|
-
await
|
|
94
|
+
await fs.mkdir(llmPartsDir, { recursive: true }).catch(() => {
|
|
90
95
|
});
|
|
96
|
+
const siteDataFile = path.resolve("dist", ".ssg-site-data.json");
|
|
97
|
+
await fs.writeFile(siteDataFile, JSON.stringify({
|
|
98
|
+
...siteData,
|
|
99
|
+
paths
|
|
100
|
+
}), "utf8");
|
|
91
101
|
const start = Date.now();
|
|
92
|
-
const codes = total === 1 ? [await runShard(0, 1,
|
|
102
|
+
const codes = total === 1 ? [await runShard(0, 1, [], opts, llmPartsDir, siteDataFile)] : await Promise.all(Array.from({ length: total }, (_, i) => runShard(i, total, [], opts, llmPartsDir, siteDataFile)));
|
|
93
103
|
const failed = codes.findIndex((c) => c !== 0);
|
|
94
104
|
if (failed !== -1) {
|
|
95
105
|
console.error(`[blox-ssg] shard ${failed} exited with code ${codes[failed]}`);
|
|
@@ -97,15 +107,8 @@ async function runSharded(opts) {
|
|
|
97
107
|
}
|
|
98
108
|
if (process.env.BLOX_SSG_LLM !== "0") {
|
|
99
109
|
try {
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
Promise.resolve().then(() => require("./prerender-DeKrwYJJ.cjs")).then((n) => n.cmsRoutes)
|
|
103
|
-
]);
|
|
104
|
-
let website = null;
|
|
105
|
-
try {
|
|
106
|
-
website = (await fetchCmsSiteData(opts.apiBase, opts.websiteName)).website;
|
|
107
|
-
} catch {
|
|
108
|
-
}
|
|
110
|
+
const { mergeLlmParts } = await Promise.resolve().then(() => require("./prerender-BWpb4ASq.cjs")).then((n) => n.llmArtifacts);
|
|
111
|
+
const website = siteData.website;
|
|
109
112
|
const partFiles = Array.from({ length: total }, (_, i) => path.join(llmPartsDir, `part.${i}.json`));
|
|
110
113
|
const { pages } = await mergeLlmParts({
|
|
111
114
|
partFiles,
|
|
@@ -118,6 +121,8 @@ async function runSharded(opts) {
|
|
|
118
121
|
console.warn(`[blox-ssg] llms merge skipped: ${e.message}`);
|
|
119
122
|
}
|
|
120
123
|
}
|
|
124
|
+
await fs.rm(siteDataFile, { force: true }).catch(() => {
|
|
125
|
+
});
|
|
121
126
|
console.log(`[blox-ssg] sharded run done in ${((Date.now() - start) / 1e3).toFixed(1)}s`);
|
|
122
127
|
return 0;
|
|
123
128
|
}
|
|
@@ -2,6 +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 } from "./prerender-DyPDRA5B.js";
|
|
5
6
|
const AUTO_SHARD_CAP = Number(process.env.BLOX_SSG_SHARD_CAP) || 6;
|
|
6
7
|
const PREFETCH_BUDGET = Number(process.env.BLOX_SSG_PREFETCH_BUDGET) || 24;
|
|
7
8
|
function resolveShardCount(shards) {
|
|
@@ -25,7 +26,7 @@ async function enumerateRoutes(cmd) {
|
|
|
25
26
|
);
|
|
26
27
|
});
|
|
27
28
|
}
|
|
28
|
-
function runShard(index, total, paths, opts, llmPartsDir) {
|
|
29
|
+
function runShard(index, total, paths, opts, llmPartsDir, siteDataFile) {
|
|
29
30
|
return new Promise((resolve) => {
|
|
30
31
|
const cliEntry = process.argv[1];
|
|
31
32
|
const shardArgs = [
|
|
@@ -33,6 +34,7 @@ function runShard(index, total, paths, opts, llmPartsDir) {
|
|
|
33
34
|
`--shard=${index}/${total}`,
|
|
34
35
|
"--no-crawl",
|
|
35
36
|
`--llm-parts=${path.join(llmPartsDir, `part.${index}.json`)}`,
|
|
37
|
+
`--site-data=${siteDataFile}`,
|
|
36
38
|
...opts.passthroughArgs,
|
|
37
39
|
...paths
|
|
38
40
|
];
|
|
@@ -54,18 +56,26 @@ function runShard(index, total, paths, opts, llmPartsDir) {
|
|
|
54
56
|
}
|
|
55
57
|
async function runSharded(opts) {
|
|
56
58
|
const total = resolveShardCount(opts.shards);
|
|
59
|
+
const fs = await import("node:fs/promises");
|
|
57
60
|
const paths = [...opts.extraPaths];
|
|
58
61
|
if (opts.routesCmd) {
|
|
59
62
|
const enumerated = await enumerateRoutes(opts.routesCmd);
|
|
60
63
|
for (const p of enumerated) if (!paths.includes(p)) paths.push(p);
|
|
61
64
|
console.log(`[blox-ssg] routes-cmd enumerated ${enumerated.length} route(s)`);
|
|
62
65
|
}
|
|
66
|
+
const siteData = await fetchCmsSiteData(opts.apiBase, opts.websiteName);
|
|
67
|
+
for (const p of siteData.paths) if (!paths.includes(p)) paths.push(p);
|
|
63
68
|
console.log(`[blox-ssg] sharded run · ${total} shard(s) · ${paths.length} extra path(s)`);
|
|
64
69
|
const llmPartsDir = path.resolve("dist", ".llm-parts");
|
|
65
|
-
await
|
|
70
|
+
await fs.mkdir(llmPartsDir, { recursive: true }).catch(() => {
|
|
66
71
|
});
|
|
72
|
+
const siteDataFile = path.resolve("dist", ".ssg-site-data.json");
|
|
73
|
+
await fs.writeFile(siteDataFile, JSON.stringify({
|
|
74
|
+
...siteData,
|
|
75
|
+
paths
|
|
76
|
+
}), "utf8");
|
|
67
77
|
const start = Date.now();
|
|
68
|
-
const codes = total === 1 ? [await runShard(0, 1,
|
|
78
|
+
const codes = total === 1 ? [await runShard(0, 1, [], opts, llmPartsDir, siteDataFile)] : await Promise.all(Array.from({ length: total }, (_, i) => runShard(i, total, [], opts, llmPartsDir, siteDataFile)));
|
|
69
79
|
const failed = codes.findIndex((c) => c !== 0);
|
|
70
80
|
if (failed !== -1) {
|
|
71
81
|
console.error(`[blox-ssg] shard ${failed} exited with code ${codes[failed]}`);
|
|
@@ -73,15 +83,8 @@ async function runSharded(opts) {
|
|
|
73
83
|
}
|
|
74
84
|
if (process.env.BLOX_SSG_LLM !== "0") {
|
|
75
85
|
try {
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
import("./prerender-zsOtzM-D.js").then((n) => n.t)
|
|
79
|
-
]);
|
|
80
|
-
let website = null;
|
|
81
|
-
try {
|
|
82
|
-
website = (await fetchCmsSiteData(opts.apiBase, opts.websiteName)).website;
|
|
83
|
-
} catch {
|
|
84
|
-
}
|
|
86
|
+
const { mergeLlmParts } = await import("./prerender-DyPDRA5B.js").then((n) => n.t);
|
|
87
|
+
const website = siteData.website;
|
|
85
88
|
const partFiles = Array.from({ length: total }, (_, i) => path.join(llmPartsDir, `part.${i}.json`));
|
|
86
89
|
const { pages } = await mergeLlmParts({
|
|
87
90
|
partFiles,
|
|
@@ -94,6 +97,8 @@ async function runSharded(opts) {
|
|
|
94
97
|
console.warn(`[blox-ssg] llms merge skipped: ${e.message}`);
|
|
95
98
|
}
|
|
96
99
|
}
|
|
100
|
+
await fs.rm(siteDataFile, { force: true }).catch(() => {
|
|
101
|
+
});
|
|
97
102
|
console.log(`[blox-ssg] sharded run done in ${((Date.now() - start) / 1e3).toFixed(1)}s`);
|
|
98
103
|
return 0;
|
|
99
104
|
}
|
package/dist/ssg/cli.cjs
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
"use strict";
|
|
3
3
|
const process = require("node:process");
|
|
4
|
-
const
|
|
4
|
+
const fs = require("node:fs/promises");
|
|
5
|
+
const llmArtifacts = require("../prerender-BWpb4ASq.cjs");
|
|
5
6
|
function installFetchTimeout() {
|
|
6
7
|
const ms = Number(process.env.BLOX_SSG_FETCH_TIMEOUT_MS) || 2e4;
|
|
7
8
|
const original = globalThis.fetch;
|
|
@@ -39,7 +40,6 @@ async function resolveApiBase(mode) {
|
|
|
39
40
|
return { apiBase: "https://localhost:8000" };
|
|
40
41
|
}
|
|
41
42
|
async function main() {
|
|
42
|
-
var _a;
|
|
43
43
|
installFetchTimeout();
|
|
44
44
|
const argv = process.argv.slice(2);
|
|
45
45
|
const extraPaths = [];
|
|
@@ -50,6 +50,7 @@ async function main() {
|
|
|
50
50
|
let llmPartsFile = "";
|
|
51
51
|
let shardsOpt = null;
|
|
52
52
|
let routesCmd = "";
|
|
53
|
+
let siteDataFile = "";
|
|
53
54
|
const passthroughArgs = [];
|
|
54
55
|
const excludePaths = ["/_blox_preview"];
|
|
55
56
|
for (const a of argv) {
|
|
@@ -63,6 +64,8 @@ async function main() {
|
|
|
63
64
|
shardsOpt = v === "auto" ? "auto" : Number.isInteger(Number(v)) ? Number(v) : null;
|
|
64
65
|
} else if (a.startsWith("--routes-cmd=")) {
|
|
65
66
|
routesCmd = a.slice("--routes-cmd=".length);
|
|
67
|
+
} else if (a.startsWith("--site-data=")) {
|
|
68
|
+
siteDataFile = a.slice("--site-data=".length);
|
|
66
69
|
} else if (a.startsWith("--shard=")) {
|
|
67
70
|
const [i, n] = a.slice("--shard=".length).split("/").map(Number);
|
|
68
71
|
if (Number.isInteger(i) && Number.isInteger(n) && n > 0 && i >= 0 && i < n) {
|
|
@@ -110,7 +113,7 @@ Environment:
|
|
|
110
113
|
if (shardsOpt !== null || routesCmd) {
|
|
111
114
|
const { apiBase: apiBase2, websiteName: configWebsiteName2 } = await resolveApiBase(mode);
|
|
112
115
|
const websiteName2 = process.env.WEBSITE_NAME ?? configWebsiteName2 ?? "default";
|
|
113
|
-
const { runSharded } = await Promise.resolve().then(() => require("../shard-runner-
|
|
116
|
+
const { runSharded } = await Promise.resolve().then(() => require("../shard-runner-CDbjJ3La.cjs"));
|
|
114
117
|
const code = await runSharded({
|
|
115
118
|
shards: shardsOpt ?? "auto",
|
|
116
119
|
mode,
|
|
@@ -124,7 +127,7 @@ Environment:
|
|
|
124
127
|
return;
|
|
125
128
|
}
|
|
126
129
|
const { apiBase, websiteName: configWebsiteName } = await resolveApiBase(mode);
|
|
127
|
-
await
|
|
130
|
+
await llmArtifacts.polyfillBloxSsgGlobals({ pageUrl: apiBase });
|
|
128
131
|
const websiteName = process.env.WEBSITE_NAME ?? configWebsiteName ?? "default";
|
|
129
132
|
console.log(`Fetching routes from ${apiBase} (mode: ${mode}, site: ${websiteName})…`);
|
|
130
133
|
let paths = [];
|
|
@@ -132,41 +135,18 @@ Environment:
|
|
|
132
135
|
let websiteId = "";
|
|
133
136
|
let redirects = [];
|
|
134
137
|
const collections = {};
|
|
138
|
+
let cmsPathSet = /* @__PURE__ */ new Set();
|
|
135
139
|
const productionBuild = process.env.NODE_ENV === "production" || mode === "production";
|
|
136
140
|
try {
|
|
137
|
-
const siteData = await
|
|
141
|
+
const siteData = siteDataFile ? JSON.parse(await fs.readFile(siteDataFile, "utf8")) : await llmArtifacts.fetchCmsSiteData(apiBase, websiteName);
|
|
138
142
|
paths = siteData.paths;
|
|
143
|
+
cmsPathSet = new Set(siteData.paths);
|
|
139
144
|
website = siteData.website;
|
|
140
145
|
websiteId = siteData.websiteId;
|
|
141
146
|
redirects = siteData.redirects;
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
const extraCollections = (_a = process.env.BLOX_SSG_COLLECTIONS) == null ? void 0 : _a.trim();
|
|
146
|
-
if (extraCollections) {
|
|
147
|
-
for (const entry of extraCollections.split(",")) {
|
|
148
|
-
const parts = entry.trim().split("/");
|
|
149
|
-
if (parts.length === 2 && parts[0] && parts[1]) {
|
|
150
|
-
const already = allCollectionRefs.some((r) => r.store === parts[0] && r.collection === parts[1]);
|
|
151
|
-
if (!already) allCollectionRefs.push({ store: parts[0], collection: parts[1] });
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
if (allCollectionRefs.length > 0) {
|
|
156
|
-
console.log(` Pre-fetching ${allCollectionRefs.length} datastore collection(s)…`);
|
|
157
|
-
for (const ref of allCollectionRefs) {
|
|
158
|
-
try {
|
|
159
|
-
const url = `${apiBase}/datastore/${ref.store}/collections/${ref.collection}?limit=500`;
|
|
160
|
-
const data = await cmsRoutes.bloxBuildJson(url);
|
|
161
|
-
const items = Array.isArray(data) ? data : data.data ?? [];
|
|
162
|
-
const key = `${ref.store}/${ref.collection}`;
|
|
163
|
-
collections[key] = items;
|
|
164
|
-
console.log(` ${key}: ${items.length} items`);
|
|
165
|
-
} catch (e) {
|
|
166
|
-
if (productionBuild) throw e;
|
|
167
|
-
console.warn(` Failed to fetch ${ref.store}/${ref.collection}: ${e.message}`);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
147
|
+
if (!siteDataFile) {
|
|
148
|
+
console.log(` Found ${paths.length} CMS routes`);
|
|
149
|
+
if (redirects.length > 0) console.log(` Found ${redirects.length} redirects`);
|
|
170
150
|
}
|
|
171
151
|
} catch (err) {
|
|
172
152
|
console.error(" Failed to fetch CMS data:", err.message);
|
|
@@ -176,15 +156,17 @@ Environment:
|
|
|
176
156
|
for (const p of extraPaths) {
|
|
177
157
|
if (!paths.includes(p)) paths.push(p);
|
|
178
158
|
}
|
|
159
|
+
let appPaths = paths.filter((path) => !cmsPathSet.has(path));
|
|
179
160
|
if (shardTotal > 1) {
|
|
180
161
|
paths = [...paths].sort();
|
|
181
162
|
paths = paths.filter((_, idx) => idx % shardTotal === shardIndex);
|
|
163
|
+
appPaths = appPaths.filter((path) => paths.includes(path));
|
|
182
164
|
crawl = false;
|
|
183
165
|
console.log(` Shard ${shardIndex + 1}/${shardTotal}: ${paths.length} paths`);
|
|
184
166
|
}
|
|
185
167
|
const startTime = Date.now();
|
|
186
168
|
try {
|
|
187
|
-
const result = await
|
|
169
|
+
const result = await llmArtifacts.prerender({
|
|
188
170
|
root: process.cwd(),
|
|
189
171
|
clientOutDir: "dist",
|
|
190
172
|
serverEntry: "dist/server/main.server.js",
|
|
@@ -200,6 +182,7 @@ Environment:
|
|
|
200
182
|
// this to (global budget / shard count) so N shards don't collectively
|
|
201
183
|
// hammer a small API. 0 disables prefetch (inline resolve).
|
|
202
184
|
resolvePrefetchConcurrency: process.env.BLOX_SSG_PREFETCH !== void 0 ? Number(process.env.BLOX_SSG_PREFETCH) : 8,
|
|
185
|
+
appPaths,
|
|
203
186
|
mode: "file",
|
|
204
187
|
// Only shard 0 writes shared, whole-site assets (sitemap/robots/_redirects)
|
|
205
188
|
// so parallel shards don't race/clobber them.
|
package/dist/ssg/cli.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
import process from "node:process";
|
|
3
|
-
import
|
|
3
|
+
import fs from "node:fs/promises";
|
|
4
|
+
import { p as polyfillBloxSsgGlobals, f as fetchCmsSiteData, a as prerender } from "../prerender-DyPDRA5B.js";
|
|
4
5
|
function installFetchTimeout() {
|
|
5
6
|
const ms = Number(process.env.BLOX_SSG_FETCH_TIMEOUT_MS) || 2e4;
|
|
6
7
|
const original = globalThis.fetch;
|
|
@@ -38,7 +39,6 @@ async function resolveApiBase(mode) {
|
|
|
38
39
|
return { apiBase: "https://localhost:8000" };
|
|
39
40
|
}
|
|
40
41
|
async function main() {
|
|
41
|
-
var _a;
|
|
42
42
|
installFetchTimeout();
|
|
43
43
|
const argv = process.argv.slice(2);
|
|
44
44
|
const extraPaths = [];
|
|
@@ -49,6 +49,7 @@ async function main() {
|
|
|
49
49
|
let llmPartsFile = "";
|
|
50
50
|
let shardsOpt = null;
|
|
51
51
|
let routesCmd = "";
|
|
52
|
+
let siteDataFile = "";
|
|
52
53
|
const passthroughArgs = [];
|
|
53
54
|
const excludePaths = ["/_blox_preview"];
|
|
54
55
|
for (const a of argv) {
|
|
@@ -62,6 +63,8 @@ async function main() {
|
|
|
62
63
|
shardsOpt = v === "auto" ? "auto" : Number.isInteger(Number(v)) ? Number(v) : null;
|
|
63
64
|
} else if (a.startsWith("--routes-cmd=")) {
|
|
64
65
|
routesCmd = a.slice("--routes-cmd=".length);
|
|
66
|
+
} else if (a.startsWith("--site-data=")) {
|
|
67
|
+
siteDataFile = a.slice("--site-data=".length);
|
|
65
68
|
} else if (a.startsWith("--shard=")) {
|
|
66
69
|
const [i, n] = a.slice("--shard=".length).split("/").map(Number);
|
|
67
70
|
if (Number.isInteger(i) && Number.isInteger(n) && n > 0 && i >= 0 && i < n) {
|
|
@@ -109,7 +112,7 @@ Environment:
|
|
|
109
112
|
if (shardsOpt !== null || routesCmd) {
|
|
110
113
|
const { apiBase: apiBase2, websiteName: configWebsiteName2 } = await resolveApiBase(mode);
|
|
111
114
|
const websiteName2 = process.env.WEBSITE_NAME ?? configWebsiteName2 ?? "default";
|
|
112
|
-
const { runSharded } = await import("../shard-runner-
|
|
115
|
+
const { runSharded } = await import("../shard-runner-CGoEKvk3.js");
|
|
113
116
|
const code = await runSharded({
|
|
114
117
|
shards: shardsOpt ?? "auto",
|
|
115
118
|
mode,
|
|
@@ -131,41 +134,18 @@ Environment:
|
|
|
131
134
|
let websiteId = "";
|
|
132
135
|
let redirects = [];
|
|
133
136
|
const collections = {};
|
|
137
|
+
let cmsPathSet = /* @__PURE__ */ new Set();
|
|
134
138
|
const productionBuild = process.env.NODE_ENV === "production" || mode === "production";
|
|
135
139
|
try {
|
|
136
|
-
const siteData = await fetchCmsSiteData(apiBase, websiteName);
|
|
140
|
+
const siteData = siteDataFile ? JSON.parse(await fs.readFile(siteDataFile, "utf8")) : await fetchCmsSiteData(apiBase, websiteName);
|
|
137
141
|
paths = siteData.paths;
|
|
142
|
+
cmsPathSet = new Set(siteData.paths);
|
|
138
143
|
website = siteData.website;
|
|
139
144
|
websiteId = siteData.websiteId;
|
|
140
145
|
redirects = siteData.redirects;
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
const extraCollections = (_a = process.env.BLOX_SSG_COLLECTIONS) == null ? void 0 : _a.trim();
|
|
145
|
-
if (extraCollections) {
|
|
146
|
-
for (const entry of extraCollections.split(",")) {
|
|
147
|
-
const parts = entry.trim().split("/");
|
|
148
|
-
if (parts.length === 2 && parts[0] && parts[1]) {
|
|
149
|
-
const already = allCollectionRefs.some((r) => r.store === parts[0] && r.collection === parts[1]);
|
|
150
|
-
if (!already) allCollectionRefs.push({ store: parts[0], collection: parts[1] });
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
if (allCollectionRefs.length > 0) {
|
|
155
|
-
console.log(` Pre-fetching ${allCollectionRefs.length} datastore collection(s)…`);
|
|
156
|
-
for (const ref of allCollectionRefs) {
|
|
157
|
-
try {
|
|
158
|
-
const url = `${apiBase}/datastore/${ref.store}/collections/${ref.collection}?limit=500`;
|
|
159
|
-
const data = await bloxBuildJson(url);
|
|
160
|
-
const items = Array.isArray(data) ? data : data.data ?? [];
|
|
161
|
-
const key = `${ref.store}/${ref.collection}`;
|
|
162
|
-
collections[key] = items;
|
|
163
|
-
console.log(` ${key}: ${items.length} items`);
|
|
164
|
-
} catch (e) {
|
|
165
|
-
if (productionBuild) throw e;
|
|
166
|
-
console.warn(` Failed to fetch ${ref.store}/${ref.collection}: ${e.message}`);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
146
|
+
if (!siteDataFile) {
|
|
147
|
+
console.log(` Found ${paths.length} CMS routes`);
|
|
148
|
+
if (redirects.length > 0) console.log(` Found ${redirects.length} redirects`);
|
|
169
149
|
}
|
|
170
150
|
} catch (err) {
|
|
171
151
|
console.error(" Failed to fetch CMS data:", err.message);
|
|
@@ -175,9 +155,11 @@ Environment:
|
|
|
175
155
|
for (const p of extraPaths) {
|
|
176
156
|
if (!paths.includes(p)) paths.push(p);
|
|
177
157
|
}
|
|
158
|
+
let appPaths = paths.filter((path) => !cmsPathSet.has(path));
|
|
178
159
|
if (shardTotal > 1) {
|
|
179
160
|
paths = [...paths].sort();
|
|
180
161
|
paths = paths.filter((_, idx) => idx % shardTotal === shardIndex);
|
|
162
|
+
appPaths = appPaths.filter((path) => paths.includes(path));
|
|
181
163
|
crawl = false;
|
|
182
164
|
console.log(` Shard ${shardIndex + 1}/${shardTotal}: ${paths.length} paths`);
|
|
183
165
|
}
|
|
@@ -199,6 +181,7 @@ Environment:
|
|
|
199
181
|
// this to (global budget / shard count) so N shards don't collectively
|
|
200
182
|
// hammer a small API. 0 disables prefetch (inline resolve).
|
|
201
183
|
resolvePrefetchConcurrency: process.env.BLOX_SSG_PREFETCH !== void 0 ? Number(process.env.BLOX_SSG_PREFETCH) : 8,
|
|
184
|
+
appPaths,
|
|
202
185
|
mode: "file",
|
|
203
186
|
// Only shard 0 writes shared, whole-site assets (sitemap/robots/_redirects)
|
|
204
187
|
// so parallel shards don't race/clobber them.
|
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
|
|
25
|
+
const llmArtifacts = require("../prerender-BWpb4ASq.cjs");
|
|
26
26
|
const ssg_client = require("./client.cjs");
|
|
27
27
|
const pinia = require("pinia");
|
|
28
28
|
const vue = require("vue");
|
|
@@ -63,7 +63,7 @@ async function renderBloxSsgPage(options) {
|
|
|
63
63
|
const seoOverride = seoHead && Object.keys(seoHead).length > 0 ? seoHead : void 0;
|
|
64
64
|
const bloxData = dataRegistry && collectData ? collectData(dataRegistry) : {};
|
|
65
65
|
const dataScript = Object.keys(bloxData).length > 0 ? `<script>window[${JSON.stringify(routes.BLOX_DATA_WINDOW_KEY)}]=${safeJson(bloxData)};${"<"}/script>` : "";
|
|
66
|
-
let head =
|
|
66
|
+
let head = llmArtifacts.buildPageHead({
|
|
67
67
|
url,
|
|
68
68
|
resolvedData,
|
|
69
69
|
website,
|
|
@@ -72,9 +72,9 @@ async function renderBloxSsgPage(options) {
|
|
|
72
72
|
stateScript: [stateScript, collectionsScript, websiteIdScript, dataScript].filter(Boolean).join("\n")
|
|
73
73
|
});
|
|
74
74
|
const seoData = resolvedData;
|
|
75
|
-
const primary =
|
|
75
|
+
const primary = llmArtifacts.primaryContextEntry(seoData == null ? void 0 : seoData.contexts);
|
|
76
76
|
if ((llm == null ? void 0 : llm.jsonLd) !== false) {
|
|
77
|
-
const jsonLd =
|
|
77
|
+
const jsonLd = llmArtifacts.buildJsonLd({
|
|
78
78
|
url,
|
|
79
79
|
page: seoData == null ? void 0 : seoData.page,
|
|
80
80
|
website,
|
|
@@ -94,7 +94,7 @@ ${jsonLd}`;
|
|
|
94
94
|
url,
|
|
95
95
|
title,
|
|
96
96
|
description,
|
|
97
|
-
text: (llm == null ? void 0 : llm.fullText) !== false ?
|
|
97
|
+
text: (llm == null ? void 0 : llm.fullText) !== false ? llmArtifacts.extractPageText(html) : void 0
|
|
98
98
|
};
|
|
99
99
|
}
|
|
100
100
|
const lang = locale || (website == null ? void 0 : website.default_locale) || "en";
|
|
@@ -130,7 +130,7 @@ function createBloxSSREntry(options) {
|
|
|
130
130
|
routes.setApiOrigin(apiBase);
|
|
131
131
|
async function getWebsiteId() {
|
|
132
132
|
if (websiteIdCache) return websiteIdCache;
|
|
133
|
-
const data = await
|
|
133
|
+
const data = await llmArtifacts.bloxBuildJson(`${apiBase}/blox/websites`, {}, options.buildRequest);
|
|
134
134
|
const sites = Array.isArray(data) ? data : (data == null ? void 0 : data.data) ?? [];
|
|
135
135
|
const site = sites.find((s) => s.name === websiteName);
|
|
136
136
|
if (!(site == null ? void 0 : site.id)) throw new Error(`Website "${websiteName}" not found`);
|
|
@@ -149,13 +149,13 @@ function createBloxSSREntry(options) {
|
|
|
149
149
|
async function fetchResolvedPage(slug, pageLocale) {
|
|
150
150
|
const websiteId = await getWebsiteId();
|
|
151
151
|
const url = `${apiBase}/blox/websites/${websiteId}/resolve-path?path=${encodeURIComponent(slug)}&locale=${pageLocale}`;
|
|
152
|
-
return
|
|
152
|
+
return llmArtifacts.bloxBuildJson(url, {}, options.buildRequest);
|
|
153
153
|
}
|
|
154
154
|
async function resolveForBuild(slug, pageLocale) {
|
|
155
155
|
try {
|
|
156
156
|
return await fetchResolvedPage(slug, pageLocale);
|
|
157
157
|
} catch (error) {
|
|
158
|
-
if (error instanceof
|
|
158
|
+
if (error instanceof llmArtifacts.BloxBuildResponseError && error.status === 404) return null;
|
|
159
159
|
throw error;
|
|
160
160
|
}
|
|
161
161
|
}
|
|
@@ -233,25 +233,25 @@ function createBloxSSREntry(options) {
|
|
|
233
233
|
}
|
|
234
234
|
return { render, prefetchResolve };
|
|
235
235
|
}
|
|
236
|
-
exports.BloxBuildResponseError =
|
|
237
|
-
exports.bloxBuildJson =
|
|
238
|
-
exports.bloxBuildRequest =
|
|
239
|
-
exports.buildJsonLd =
|
|
240
|
-
exports.buildPageHead =
|
|
241
|
-
exports.buildSiteHead =
|
|
242
|
-
exports.extractPageText =
|
|
243
|
-
exports.fetchCmsPrerenderPaths =
|
|
244
|
-
exports.fetchCmsSiteData =
|
|
245
|
-
exports.generateLlmsFullTxt =
|
|
246
|
-
exports.generateLlmsTxt =
|
|
247
|
-
exports.generateNetlifyRedirects =
|
|
248
|
-
exports.generateRobotsTxt =
|
|
249
|
-
exports.generateSitemapXml =
|
|
250
|
-
exports.getBloxBuildRequestOptions =
|
|
251
|
-
exports.getSiteIconFlags =
|
|
252
|
-
exports.mergeLlmParts =
|
|
253
|
-
exports.polyfillBloxSsgGlobals =
|
|
254
|
-
exports.prerender =
|
|
236
|
+
exports.BloxBuildResponseError = llmArtifacts.BloxBuildResponseError;
|
|
237
|
+
exports.bloxBuildJson = llmArtifacts.bloxBuildJson;
|
|
238
|
+
exports.bloxBuildRequest = llmArtifacts.bloxBuildRequest;
|
|
239
|
+
exports.buildJsonLd = llmArtifacts.buildJsonLd;
|
|
240
|
+
exports.buildPageHead = llmArtifacts.buildPageHead;
|
|
241
|
+
exports.buildSiteHead = llmArtifacts.buildSiteHead;
|
|
242
|
+
exports.extractPageText = llmArtifacts.extractPageText;
|
|
243
|
+
exports.fetchCmsPrerenderPaths = llmArtifacts.fetchCmsPrerenderPaths;
|
|
244
|
+
exports.fetchCmsSiteData = llmArtifacts.fetchCmsSiteData;
|
|
245
|
+
exports.generateLlmsFullTxt = llmArtifacts.generateLlmsFullTxt;
|
|
246
|
+
exports.generateLlmsTxt = llmArtifacts.generateLlmsTxt;
|
|
247
|
+
exports.generateNetlifyRedirects = llmArtifacts.generateNetlifyRedirects;
|
|
248
|
+
exports.generateRobotsTxt = llmArtifacts.generateRobotsTxt;
|
|
249
|
+
exports.generateSitemapXml = llmArtifacts.generateSitemapXml;
|
|
250
|
+
exports.getBloxBuildRequestOptions = llmArtifacts.getBloxBuildRequestOptions;
|
|
251
|
+
exports.getSiteIconFlags = llmArtifacts.getSiteIconFlags;
|
|
252
|
+
exports.mergeLlmParts = llmArtifacts.mergeLlmParts;
|
|
253
|
+
exports.polyfillBloxSsgGlobals = llmArtifacts.polyfillBloxSsgGlobals;
|
|
254
|
+
exports.prerender = llmArtifacts.prerender;
|
|
255
255
|
exports.BLOX_COLLECTIONS_WINDOW_KEY = ssg_client.BLOX_COLLECTIONS_WINDOW_KEY;
|
|
256
256
|
exports.BLOX_DATA_WINDOW_KEY = ssg_client.BLOX_DATA_WINDOW_KEY;
|
|
257
257
|
exports.BLOX_PAGE_SEO_WINDOW_KEY = ssg_client.BLOX_PAGE_SEO_WINDOW_KEY;
|
package/dist/ssg/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { h, i, j, f, k, l, m, n, o, q, r, s, p, a } from "../prerender-
|
|
1
|
+
import { b as buildPageHead, c as primaryContextEntry, d as buildJsonLd, e as extractPageText, B as BloxBuildResponseError, g as bloxBuildJson } from "../prerender-DyPDRA5B.js";
|
|
2
|
+
import { h, i, j, f, k, l, m, n, o, q, r, s, p, a } from "../prerender-DyPDRA5B.js";
|
|
3
3
|
import { BLOX_STATE_WINDOW_KEY, BLOX_WEBSITE_ID_WINDOW_KEY } from "./client.mjs";
|
|
4
4
|
import { BLOX_COLLECTIONS_WINDOW_KEY, BLOX_DATA_WINDOW_KEY, BLOX_PAGE_SEO_WINDOW_KEY, getCollectionCache, getEmbeddedWebsiteId, installBloxStateCache, installCollectionCache } from "./client.mjs";
|
|
5
5
|
import { createPinia } from "pinia";
|
package/dist/ssg/prerender.d.ts
CHANGED
|
@@ -21,6 +21,8 @@ export interface PrerenderOptions {
|
|
|
21
21
|
writeSharedAssets?: boolean;
|
|
22
22
|
/** Parallel `/resolve-path` prefetches ahead of the render pool (default 24; 0 disables). */
|
|
23
23
|
resolvePrefetchConcurrency?: number;
|
|
24
|
+
/** Paths known to be app/router-owned; skip CMS resolve probes for these. */
|
|
25
|
+
appPaths?: string[];
|
|
24
26
|
mode?: 'dir' | 'file';
|
|
25
27
|
/** Website settings for SEO injection. */
|
|
26
28
|
website?: WebsiteRead | null;
|
|
@@ -94,7 +96,7 @@ export declare function prerender({ root, clientOutDir, serverEntry, paths, craw
|
|
|
94
96
|
* sharded runner divides a global budget by the shard count. 0 disables
|
|
95
97
|
* prefetch (render resolves inline). Default 8.
|
|
96
98
|
*/
|
|
97
|
-
resolvePrefetchConcurrency, mode, website, websiteId, redirects, collections, llm, }?: PrerenderOptions): Promise<PrerenderResult>;
|
|
99
|
+
resolvePrefetchConcurrency, appPaths, mode, website, websiteId, redirects, collections, llm, }?: PrerenderOptions): Promise<PrerenderResult>;
|
|
98
100
|
export declare function injectIntoTemplate(template: string, head: string, appHtml: string, fontPreloads: string, htmlAttrs?: string): string;
|
|
99
101
|
export {};
|
|
100
102
|
//# sourceMappingURL=prerender.d.ts.map
|
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shard-runner.d.ts","sourceRoot":"","sources":["../../src/ssg/shard-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"shard-runner.d.ts","sourceRoot":"","sources":["../../src/ssg/shard-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAUH,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,iFAAiF;IACjF,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,8FAA8F;IAC9F,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAwED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgE1E"}
|
package/package.json
CHANGED