@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.
@@ -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
- bloxBuildJson as b,
945
- buildPageHead as c,
946
- primaryContextEntry as d,
947
- buildJsonLd as e,
930
+ buildPageHead as b,
931
+ primaryContextEntry as c,
932
+ buildJsonLd as d,
933
+ extractPageText as e,
948
934
  fetchCmsSiteData as f,
949
- extractPageText as g,
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
- cmsRoutes as t,
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 (await import("node:fs/promises")).mkdir(llmPartsDir, { recursive: true }).catch(() => {
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, paths, opts, llmPartsDir)] : await Promise.all(Array.from({ length: total }, (_, i) => runShard(i, total, paths, opts, llmPartsDir)));
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 [{ mergeLlmParts }, { fetchCmsSiteData }] = await Promise.all([
101
- Promise.resolve().then(() => require("./prerender-DeKrwYJJ.cjs")).then((n) => n.llmArtifacts),
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 (await import("node:fs/promises")).mkdir(llmPartsDir, { recursive: true }).catch(() => {
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, paths, opts, llmPartsDir)] : await Promise.all(Array.from({ length: total }, (_, i) => runShard(i, total, paths, opts, llmPartsDir)));
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 [{ mergeLlmParts }, { fetchCmsSiteData }] = await Promise.all([
77
- import("./prerender-zsOtzM-D.js").then((n) => n.u),
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 cmsRoutes = require("../prerender-DeKrwYJJ.cjs");
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-3TU-L8Tu.cjs"));
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 cmsRoutes.polyfillBloxSsgGlobals({ pageUrl: apiBase });
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 cmsRoutes.fetchCmsSiteData(apiBase, websiteName);
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
- console.log(` Found ${paths.length} CMS routes`);
143
- if (redirects.length > 0) console.log(` Found ${redirects.length} redirects`);
144
- const allCollectionRefs = [...siteData.collections];
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 cmsRoutes.prerender({
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 { p as polyfillBloxSsgGlobals, f as fetchCmsSiteData, b as bloxBuildJson, a as prerender } from "../prerender-zsOtzM-D.js";
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-zlAzg5_5.js");
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
- console.log(` Found ${paths.length} CMS routes`);
142
- if (redirects.length > 0) console.log(` Found ${redirects.length} redirects`);
143
- const allCollectionRefs = [...siteData.collections];
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.
@@ -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 cmsRoutes = require("../prerender-DeKrwYJJ.cjs");
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 = cmsRoutes.buildPageHead({
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 = cmsRoutes.primaryContextEntry(seoData == null ? void 0 : seoData.contexts);
75
+ const primary = llmArtifacts.primaryContextEntry(seoData == null ? void 0 : seoData.contexts);
76
76
  if ((llm == null ? void 0 : llm.jsonLd) !== false) {
77
- const jsonLd = cmsRoutes.buildJsonLd({
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 ? cmsRoutes.extractPageText(html) : void 0
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 cmsRoutes.bloxBuildJson(`${apiBase}/blox/websites`, {}, options.buildRequest);
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 cmsRoutes.bloxBuildJson(url, {}, options.buildRequest);
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 cmsRoutes.BloxBuildResponseError && error.status === 404) return null;
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 = cmsRoutes.BloxBuildResponseError;
237
- exports.bloxBuildJson = cmsRoutes.bloxBuildJson;
238
- exports.bloxBuildRequest = cmsRoutes.bloxBuildRequest;
239
- exports.buildJsonLd = cmsRoutes.buildJsonLd;
240
- exports.buildPageHead = cmsRoutes.buildPageHead;
241
- exports.buildSiteHead = cmsRoutes.buildSiteHead;
242
- exports.extractPageText = cmsRoutes.extractPageText;
243
- exports.fetchCmsPrerenderPaths = cmsRoutes.fetchCmsPrerenderPaths;
244
- exports.fetchCmsSiteData = cmsRoutes.fetchCmsSiteData;
245
- exports.generateLlmsFullTxt = cmsRoutes.generateLlmsFullTxt;
246
- exports.generateLlmsTxt = cmsRoutes.generateLlmsTxt;
247
- exports.generateNetlifyRedirects = cmsRoutes.generateNetlifyRedirects;
248
- exports.generateRobotsTxt = cmsRoutes.generateRobotsTxt;
249
- exports.generateSitemapXml = cmsRoutes.generateSitemapXml;
250
- exports.getBloxBuildRequestOptions = cmsRoutes.getBloxBuildRequestOptions;
251
- exports.getSiteIconFlags = cmsRoutes.getSiteIconFlags;
252
- exports.mergeLlmParts = cmsRoutes.mergeLlmParts;
253
- exports.polyfillBloxSsgGlobals = cmsRoutes.polyfillBloxSsgGlobals;
254
- exports.prerender = cmsRoutes.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;
@@ -1,5 +1,5 @@
1
- import { c as buildPageHead, d as primaryContextEntry, e as buildJsonLd, g as extractPageText, B as BloxBuildResponseError, b as bloxBuildJson } from "../prerender-zsOtzM-D.js";
2
- import { h, i, j, f, k, l, m, n, o, q, r, s, p, a } from "../prerender-zsOtzM-D.js";
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";
@@ -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":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAgBvE,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAA;AAEhE,MAAM,WAAW,gBAAgB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAA;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,6FAA6F;IAC7F,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACrB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kDAAkD;IAClD,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;IAC3B,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;IACvC,wEAAwE;IACxE,GAAG,CAAC,EAAE,kBAAkB,CAAA;CACxB;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAA;IACzC,QAAQ,EAAE,MAAM,CAAA;IAChB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;IACvC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,0EAA0E;IAC1E,GAAG,CAAC,EAAE,kBAAkB,CAAA;CACxB;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4EAA4E;IAC5E,GAAG,CAAC,EAAE,YAAY,CAAA;CAClB;AAQD,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IAC7D,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,SAAS,CAAC,EAC/B,IAAoB,EACpB,YAA4B,EAC5B,WAA0C,EAC1C,KAAU,EACV,KAAY,EACZ,YAAiB,EACjB,QAAgB,EAChB,QAAe,EACf,WAAe,EACf,iBAAwB;AACxB;;;;;;;;;GASG;AACH,0BAA8B,EAC9B,IAAY,EACZ,OAAc,EACd,SAAc,EACd,SAAc,EACd,WAAgB,EAChB,GAAQ,GACR,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CA2OlD;AA4FD,wBAAgB,kBAAkB,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,SAAS,SAAK,GACZ,MAAM,CA8CR"}
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;AASH,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;AAgED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0D1E"}
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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/blox",
3
3
  "type": "module",
4
- "version": "1.15.340",
4
+ "version": "1.15.344",
5
5
  "description": "Blox page builder library for drag-and-drop page building and static data management",
6
6
  "author": {
7
7
  "name": "Bagel Studio",