@bagelink/blox 1.20.3 → 1.20.5

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.
@@ -2,7 +2,7 @@ import { spawn } from "node:child_process";
2
2
  import os from "node:os";
3
3
  import path from "node:path";
4
4
  import process from "node:process";
5
- import { f as fetchCmsSiteData, g as generateSitemapArtifacts, d as validateNoRedirectingLinks, i as isErrorPagePath } from "./validate-output-UVCDNeUA.js";
5
+ import { f as fetchCmsSiteData, g as generateSitemapArtifacts, d as validateNoRedirectingLinks, i as isErrorPagePath } from "./validate-output-CJhtHWFT.js";
6
6
  const AUTO_SHARD_CAP = Number(process.env.BLOX_SSG_SHARD_CAP) || 6;
7
7
  const PREFETCH_BUDGET = Number(process.env.BLOX_SSG_PREFETCH_BUDGET) || 24;
8
8
  const SEQUENTIAL_SHARDS = process.env.BLOX_SSG_SEQUENTIAL === "1";
@@ -145,7 +145,7 @@ async function runSharded(opts) {
145
145
  }
146
146
  if (process.env.BLOX_SSG_LLM !== "0" && !((_a = website == null ? void 0 : website.seo) == null ? void 0 : _a.noindex)) {
147
147
  try {
148
- const { mergeLlmParts } = await import("./validate-output-UVCDNeUA.js").then((n) => n.E);
148
+ const { mergeLlmParts } = await import("./validate-output-CJhtHWFT.js").then((n) => n.E);
149
149
  const mergeWebsite = website;
150
150
  const partFiles = Array.from({ length: total }, (_, i) => path.join(llmPartsDir, `part.${i}.json`));
151
151
  const { pages } = await mergeLlmParts({
@@ -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-K-8pYmLz.cjs");
29
+ const llmArtifacts = require("./validate-output-Bwp0ediG.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";
@@ -169,7 +169,7 @@ async function runSharded(opts) {
169
169
  }
170
170
  if (process.env.BLOX_SSG_LLM !== "0" && !((_a = website == null ? void 0 : website.seo) == null ? void 0 : _a.noindex)) {
171
171
  try {
172
- const { mergeLlmParts } = await Promise.resolve().then(() => require("./validate-output-K-8pYmLz.cjs")).then((n) => n.llmArtifacts);
172
+ const { mergeLlmParts } = await Promise.resolve().then(() => require("./validate-output-Bwp0ediG.cjs")).then((n) => n.llmArtifacts);
173
173
  const mergeWebsite = website;
174
174
  const partFiles = Array.from({ length: total }, (_, i) => path.join(llmPartsDir, `part.${i}.json`));
175
175
  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-K-8pYmLz.cjs");
6
+ const llmArtifacts = require("../validate-output-Bwp0ediG.cjs");
7
7
  const localeStrategy = require("../localeStrategy-OwRIn35C.cjs");
8
8
  function installFetchTimeout() {
9
9
  const ms = Number(process.env.BLOX_SSG_FETCH_TIMEOUT_MS) || 2e4;
@@ -157,7 +157,7 @@ Environment:
157
157
  if (shardsOpt !== null || routesCmd) {
158
158
  const { apiBase: apiBase2, websiteName: configWebsiteName2 } = await resolveApiBase(mode);
159
159
  const websiteName2 = process.env.WEBSITE_NAME ?? configWebsiteName2 ?? "default";
160
- const { runSharded } = await Promise.resolve().then(() => require("../shard-runner-nITsCO5r.cjs"));
160
+ const { runSharded } = await Promise.resolve().then(() => require("../shard-runner-DsFdfDLh.cjs"));
161
161
  const code = await runSharded({
162
162
  shards: shardsOpt ?? "auto",
163
163
  mode,
package/dist/ssg/cli.mjs CHANGED
@@ -2,7 +2,7 @@
2
2
  import process from "node:process";
3
3
  import fs from "node:fs/promises";
4
4
  import { resolveBloxBuildGrant } from "./build-grant.mjs";
5
- import { v as validateSsgOutput, u as uploadBloxManifest, p as polyfillBloxSsgGlobals, f as fetchCmsSiteData, b as buildCollectionResolver, a as prerender, c as validateInternalLinks, d as validateNoRedirectingLinks } from "../validate-output-UVCDNeUA.js";
5
+ import { v as validateSsgOutput, u as uploadBloxManifest, p as polyfillBloxSsgGlobals, f as fetchCmsSiteData, b as buildCollectionResolver, a as prerender, c as validateInternalLinks, d as validateNoRedirectingLinks } from "../validate-output-CJhtHWFT.js";
6
6
  import { s as setPageSlugMap } from "../localeStrategy-hXlNof1E.js";
7
7
  function installFetchTimeout() {
8
8
  const ms = Number(process.env.BLOX_SSG_FETCH_TIMEOUT_MS) || 2e4;
@@ -156,7 +156,7 @@ Environment:
156
156
  if (shardsOpt !== null || routesCmd) {
157
157
  const { apiBase: apiBase2, websiteName: configWebsiteName2 } = await resolveApiBase(mode);
158
158
  const websiteName2 = process.env.WEBSITE_NAME ?? configWebsiteName2 ?? "default";
159
- const { runSharded } = await import("../shard-runner-DPI12yYi.js");
159
+ const { runSharded } = await import("../shard-runner-0mHNuOav.js");
160
160
  const code = await runSharded({
161
161
  shards: shardsOpt ?? "auto",
162
162
  mode,
@@ -6,6 +6,10 @@ export interface CollectionRef {
6
6
  store: string;
7
7
  collection: string;
8
8
  }
9
+ /** JSON-safe collection → locale → rows. The empty locale is unqualified data. */
10
+ export type LocaleCollectionItems = Record<string, Record<string, Record<string, unknown>[]>>;
11
+ /** Old shard snapshots have no locale provenance; only unqualified reads may use them. */
12
+ export type CollectionItems = Record<string, Record<string, unknown>[] | Record<string, Record<string, unknown>[]>>;
9
13
  export interface CmsSiteData {
10
14
  websiteId: string;
11
15
  website: WebsiteRead;
@@ -26,9 +30,9 @@ export interface CmsSiteData {
26
30
  * Full datastore items per collection, bulk-loaded during route expansion.
27
31
  * Lets the render resolve data-bound detail pages (and block list fetches)
28
32
  * from memory instead of one network round-trip per page — the dominant
29
- * cost on large sites. Keyed by collection name (JSON-serializable).
33
+ * cost on large sites. Keyed by collection name, then locale (JSON-serializable).
30
34
  */
31
- collectionItems?: Record<string, Record<string, unknown>[]>;
35
+ collectionItems?: CollectionItems;
32
36
  }
33
37
  /**
34
38
  * Expand a list of default-locale paths into every supported locale.
@@ -55,5 +59,5 @@ export type CollectionResolver = (collection: string, options: {
55
59
  * or block manifest dependencies, so the caller can fall back to a live HTTP
56
60
  * fetch instead of silently returning an empty list.
57
61
  */
58
- export declare function buildCollectionResolver(collectionItems: Record<string, Record<string, unknown>[]>): CollectionResolver;
62
+ export declare function buildCollectionResolver(collectionItems: CollectionItems): CollectionResolver;
59
63
  //# sourceMappingURL=cms-routes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cms-routes.d.ts","sourceRoot":"","sources":["../../src/ssg/cms-routes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAqB9D,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,WAAW,CAAA;IACpB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,8EAA8E;IAC9E,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB;;;;;OAKG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACnD,SAAS,EAAE,aAAa,EAAE,CAAA;IAC1B,iFAAiF;IACjF,WAAW,EAAE,aAAa,EAAE,CAAA;IAC5B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;CAC3D;AAwCD;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,EAAE,GACxB,MAAM,EAAE,CASV;AAMD;;;GAGG;AACH,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,cAAc,GAAE,uBAA4B,GAC1C,OAAO,CAAC,WAAW,CAAC,CAmMtB;AAuKD,MAAM,MAAM,kBAAkB,GAAG,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KACrE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;AAE9C;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACtC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,GACxD,kBAAkB,CAapB"}
1
+ {"version":3,"file":"cms-routes.d.ts","sourceRoot":"","sources":["../../src/ssg/cms-routes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAqB9D,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,kFAAkF;AAClF,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;AAE7F,0FAA0F;AAC1F,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;AAEnH,MAAM,WAAW,WAAW;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,WAAW,CAAA;IACpB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,8EAA8E;IAC9E,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB;;;;;OAKG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACnD,SAAS,EAAE,aAAa,EAAE,CAAA;IAC1B,iFAAiF;IACjF,WAAW,EAAE,aAAa,EAAE,CAAA;IAC5B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,eAAe,CAAA;CACjC;AAwCD;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,EAAE,GACxB,MAAM,EAAE,CASV;AAMD;;;GAGG;AACH,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,cAAc,GAAE,uBAA4B,GAC1C,OAAO,CAAC,WAAW,CAAC,CAmMtB;AAwKD,MAAM,MAAM,kBAAkB,GAAG,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KACrE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;AAE9C;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACtC,eAAe,EAAE,eAAe,GAC9B,kBAAkB,CAkBpB"}
@@ -22,7 +22,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
22
22
  mod
23
23
  ));
24
24
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
25
- const llmArtifacts = require("../validate-output-K-8pYmLz.cjs");
25
+ const llmArtifacts = require("../validate-output-Bwp0ediG.cjs");
26
26
  const ssg_buildGrant = require("./build-grant.cjs");
27
27
  const ssg_client = require("../client-AoDTJJXJ.cjs");
28
28
  const vue = require("vue");
@@ -1,5 +1,5 @@
1
1
  export { fetchCmsSiteData } from './cms-routes';
2
- export type { CmsSiteData, CollectionRef } from './cms-routes';
2
+ export type { CmsSiteData, CollectionRef, CollectionItems, LocaleCollectionItems } from './cms-routes';
3
3
  export { BloxBuildResponseError, bloxBuildJson, bloxBuildRequest, getBloxBuildRequestOptions } from './build-request';
4
4
  export { parseBloxBuildGrantBody, resolveBloxBuildGrant } from './build-grant';
5
5
  export type { BloxBuildGrant, ResolveBloxBuildGrantOptions } from './build-grant';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ssg/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,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,yBAAyB,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,YAAY,EAAE,YAAY,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAClG,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,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC5E,YAAY,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ssg/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACtG,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,yBAAyB,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,YAAY,EAAE,YAAY,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAClG,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,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC5E,YAAY,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA"}
@@ -1,5 +1,5 @@
1
- import { e as buildPageHead, h as primaryContextEntry, j as buildJsonLd, k as extractPageText, B as BloxBuildResponseError, l as bloxBuildJson } from "../validate-output-UVCDNeUA.js";
2
- import { m, n, f, o, q, r, s, g, t, w, x, y, z, A, p, a, C, D, u, c, v } from "../validate-output-UVCDNeUA.js";
1
+ import { e as buildPageHead, h as primaryContextEntry, j as buildJsonLd, k as extractPageText, B as BloxBuildResponseError, l as bloxBuildJson } from "../validate-output-CJhtHWFT.js";
2
+ import { m, n, f, o, q, r, s, g, t, w, x, y, z, A, p, a, C, D, u, c, v } from "../validate-output-CJhtHWFT.js";
3
3
  import { parseBloxBuildGrantBody, resolveBloxBuildGrant } from "./build-grant.mjs";
4
4
  import { a as BLOX_HYDRATION_WINDOW_KEY } from "../client-Ce9fRCGH.js";
5
5
  import { createSSRApp, h, Suspense } from "vue";
@@ -145,14 +145,14 @@ async function fetchCmsSiteData(apiBase, websiteName, requestOptions = {}) {
145
145
  };
146
146
  }));
147
147
  const manifestCollections = baseBundle.collections ?? [];
148
- await preloadCollections(
148
+ await Promise.all(supportedLocales2.map((locale) => preloadCollections(
149
149
  apiBase,
150
150
  websiteId,
151
151
  manifestCollections,
152
- defaultLocale2,
152
+ locale,
153
153
  requestOptions,
154
154
  collectionItems
155
- );
155
+ )));
156
156
  const paths2 = [...new Set(localizedBundles.flatMap((result) => result.paths))];
157
157
  const pathSet2 = new Set(paths2);
158
158
  const defaultPages2 = ((_c = localizedBundles.find((result) => result.locale === defaultLocale2)) == null ? void 0 : _c.bundle.pages) ?? [];
@@ -259,6 +259,7 @@ async function fetchCmsSiteData(apiBase, websiteName, requestOptions = {}) {
259
259
  };
260
260
  }
261
261
  async function expandRoutes(apiBase, pages, requestOptions, locale, collectItems) {
262
+ var _a;
262
263
  const routes = [];
263
264
  const grantedWebsiteId = requestOptions.websiteId;
264
265
  for (const page of pages) {
@@ -287,8 +288,9 @@ async function expandRoutes(apiBase, pages, requestOptions, locale, collectItems
287
288
  if (pageItems.length < pageSize) break;
288
289
  }
289
290
  if (collectItems && b.collection) {
290
- const existing = collectItems[b.collection] ?? [];
291
- collectItems[b.collection] = [...existing, ...items];
291
+ const localized = collectItems[_a = b.collection] ?? (collectItems[_a] = {});
292
+ const existing = localized[locale ?? ""] ?? [];
293
+ localized[locale ?? ""] = [...existing, ...items];
292
294
  }
293
295
  for (const item of items) {
294
296
  const bindValue = item[b.bind_by];
@@ -321,7 +323,8 @@ function mergeCollectionRefs(...groups) {
321
323
  async function preloadCollections(apiBase, websiteId, refs, locale, requestOptions, collectItems) {
322
324
  const pageSize = 1e3;
323
325
  await Promise.all(refs.map(async (ref) => {
324
- if (ref.collection in collectItems) return;
326
+ var _a, _b;
327
+ if ((_a = collectItems[ref.collection]) == null ? void 0 : _a[locale]) return;
325
328
  const items = [];
326
329
  for (let offset = 0; ; offset += pageSize) {
327
330
  const response = await bloxBuildJson(
@@ -335,7 +338,7 @@ async function preloadCollections(apiBase, websiteId, refs, locale, requestOptio
335
338
  items.push(...response.items);
336
339
  if (response.items.length < pageSize) break;
337
340
  }
338
- collectItems[ref.collection] = items;
341
+ (collectItems[_b = ref.collection] ?? (collectItems[_b] = {}))[locale] = items;
339
342
  }));
340
343
  }
341
344
  function extractCollectionRefs(pages) {
@@ -357,9 +360,10 @@ function extractCollectionRefs(pages) {
357
360
  return refs;
358
361
  }
359
362
  function buildCollectionResolver(collectionItems) {
360
- return async (collection, { q, offset = 0, limit = 100 } = {}) => {
361
- if (!(collection in collectionItems)) return null;
362
- let items = collectionItems[collection] ?? [];
363
+ return async (collection, { locale, q, offset = 0, limit = 100 } = {}) => {
364
+ const cached = collectionItems[collection];
365
+ let items = Array.isArray(cached) ? locale ? void 0 : cached : cached == null ? void 0 : cached[locale ?? ""];
366
+ if (!items) return null;
363
367
  if (q) {
364
368
  const match = /^\s*(\w+)\s+eq\s+"([^"]*)"\s*$/.exec(q);
365
369
  if (match) {
@@ -122,14 +122,14 @@ async function fetchCmsSiteData(apiBase, websiteName, requestOptions = {}) {
122
122
  };
123
123
  }));
124
124
  const manifestCollections = baseBundle.collections ?? [];
125
- await preloadCollections(
125
+ await Promise.all(supportedLocales2.map((locale) => preloadCollections(
126
126
  apiBase,
127
127
  websiteId,
128
128
  manifestCollections,
129
- defaultLocale2,
129
+ locale,
130
130
  requestOptions,
131
131
  collectionItems
132
- );
132
+ )));
133
133
  const paths2 = [...new Set(localizedBundles.flatMap((result) => result.paths))];
134
134
  const pathSet2 = new Set(paths2);
135
135
  const defaultPages2 = ((_c = localizedBundles.find((result) => result.locale === defaultLocale2)) == null ? void 0 : _c.bundle.pages) ?? [];
@@ -236,6 +236,7 @@ async function fetchCmsSiteData(apiBase, websiteName, requestOptions = {}) {
236
236
  };
237
237
  }
238
238
  async function expandRoutes(apiBase, pages, requestOptions, locale, collectItems) {
239
+ var _a;
239
240
  const routes = [];
240
241
  const grantedWebsiteId = requestOptions.websiteId;
241
242
  for (const page of pages) {
@@ -264,8 +265,9 @@ async function expandRoutes(apiBase, pages, requestOptions, locale, collectItems
264
265
  if (pageItems.length < pageSize) break;
265
266
  }
266
267
  if (collectItems && b.collection) {
267
- const existing = collectItems[b.collection] ?? [];
268
- collectItems[b.collection] = [...existing, ...items];
268
+ const localized = collectItems[_a = b.collection] ?? (collectItems[_a] = {});
269
+ const existing = localized[locale ?? ""] ?? [];
270
+ localized[locale ?? ""] = [...existing, ...items];
269
271
  }
270
272
  for (const item of items) {
271
273
  const bindValue = item[b.bind_by];
@@ -298,7 +300,8 @@ function mergeCollectionRefs(...groups) {
298
300
  async function preloadCollections(apiBase, websiteId, refs, locale, requestOptions, collectItems) {
299
301
  const pageSize = 1e3;
300
302
  await Promise.all(refs.map(async (ref) => {
301
- if (ref.collection in collectItems) return;
303
+ var _a, _b;
304
+ if ((_a = collectItems[ref.collection]) == null ? void 0 : _a[locale]) return;
302
305
  const items = [];
303
306
  for (let offset = 0; ; offset += pageSize) {
304
307
  const response = await bloxBuildJson(
@@ -312,7 +315,7 @@ async function preloadCollections(apiBase, websiteId, refs, locale, requestOptio
312
315
  items.push(...response.items);
313
316
  if (response.items.length < pageSize) break;
314
317
  }
315
- collectItems[ref.collection] = items;
318
+ (collectItems[_b = ref.collection] ?? (collectItems[_b] = {}))[locale] = items;
316
319
  }));
317
320
  }
318
321
  function extractCollectionRefs(pages) {
@@ -334,9 +337,10 @@ function extractCollectionRefs(pages) {
334
337
  return refs;
335
338
  }
336
339
  function buildCollectionResolver(collectionItems) {
337
- return async (collection, { q, offset = 0, limit = 100 } = {}) => {
338
- if (!(collection in collectionItems)) return null;
339
- let items = collectionItems[collection] ?? [];
340
+ return async (collection, { locale, q, offset = 0, limit = 100 } = {}) => {
341
+ const cached = collectionItems[collection];
342
+ let items = Array.isArray(cached) ? locale ? void 0 : cached : cached == null ? void 0 : cached[locale ?? ""];
343
+ if (!items) return null;
340
344
  if (q) {
341
345
  const match = /^\s*(\w+)\s+eq\s+"([^"]*)"\s*$/.exec(q);
342
346
  if (match) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/blox",
3
3
  "type": "module",
4
- "version": "1.20.3",
4
+ "version": "1.20.5",
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",
@@ -111,7 +111,8 @@
111
111
  "vitest": "^3.2.7",
112
112
  "vue": "^3.5.43",
113
113
  "vue-router": "^4.6.4",
114
- "vue-tsc": "^2.2.12"
114
+ "vue-tsc": "^2.2.12",
115
+ "@bagelink/sdk": "1.20.5"
115
116
  },
116
117
  "dependencies": {
117
118
  "magic-string": "^0.30.21",