@bagelink/blox 1.20.6 → 1.20.17

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.
@@ -5,9 +5,17 @@ export interface Block {
5
5
  /** Prop path → context reference/template, resolved by the renderer. */
6
6
  data_bindings?: Record<string, string>;
7
7
  }
8
+ export interface EmbedCode {
9
+ id?: string;
10
+ name?: string;
11
+ code?: string;
12
+ placement?: 'head_end' | 'body_start' | 'body_end' | string;
13
+ enabled?: boolean;
14
+ }
8
15
  export interface PageContent {
9
16
  blocks: Block[];
10
17
  structured_data?: Record<string, unknown> | null;
18
+ embed_codes?: EmbedCode[];
11
19
  }
12
20
  export interface PageRead {
13
21
  id: string;
@@ -19,6 +27,7 @@ export interface PageRead {
19
27
  meta_description: string | null;
20
28
  og_image: string | null;
21
29
  structured_data?: Record<string, unknown> | null;
30
+ embed_codes?: EmbedCode[];
22
31
  noindex?: boolean;
23
32
  canonical_url?: string | null;
24
33
  status: ContentStatus;
@@ -71,6 +80,7 @@ export interface StructuredData {
71
80
  export interface SiteIntegrations {
72
81
  plausible_site_id?: string | null;
73
82
  netlify_site_id?: string | null;
83
+ embed_codes?: EmbedCode[];
74
84
  }
75
85
  export interface GlobalBlockRead {
76
86
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"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"}
@@ -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, c as validatePreviewOutput, e as validateNoRedirectingLinks, i as isErrorPagePath, h as isPreviewPath } from "./validate-output-BTvdILwE.js";
5
+ import { f as fetchCmsSiteData, g as generateSitemapArtifacts, c as validatePreviewOutput, e as validateNoRedirectingLinks, i as isErrorPagePath, h as isPreviewPath } from "./validate-output-CPzsmg0M.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-BTvdILwE.js").then((n) => n.G);
148
+ const { mergeLlmParts } = await import("./validate-output-CPzsmg0M.js").then((n) => n.G);
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-CAcHbUBv.cjs");
29
+ const llmArtifacts = require("./validate-output-DFoN6pkw.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-CAcHbUBv.cjs")).then((n) => n.llmArtifacts);
172
+ const { mergeLlmParts } = await Promise.resolve().then(() => require("./validate-output-DFoN6pkw.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-CAcHbUBv.cjs");
6
+ const llmArtifacts = require("../validate-output-DFoN6pkw.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-C6BtYRC2.cjs"));
160
+ const { runSharded } = await Promise.resolve().then(() => require("../shard-runner-DL_zxeV5.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 validatePreviewOutput, d as validateInternalLinks, e as validateNoRedirectingLinks } from "../validate-output-BTvdILwE.js";
5
+ import { v as validateSsgOutput, u as uploadBloxManifest, p as polyfillBloxSsgGlobals, f as fetchCmsSiteData, b as buildCollectionResolver, a as prerender, c as validatePreviewOutput, d as validateInternalLinks, e as validateNoRedirectingLinks } from "../validate-output-CPzsmg0M.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-BGMCtBmP.js");
159
+ const { runSharded } = await import("../shard-runner-BeqW21GW.js");
160
160
  const code = await runSharded({
161
161
  shards: shardsOpt ?? "auto",
162
162
  mode,
@@ -0,0 +1,13 @@
1
+ export type EmbedPlacement = 'head_end' | 'body_start' | 'body_end';
2
+ export interface EmbedCode {
3
+ id?: string;
4
+ name?: string;
5
+ code?: string;
6
+ placement?: string;
7
+ enabled?: boolean;
8
+ }
9
+ export declare function embedMarkup(codes: EmbedCode[] | null | undefined, placement: EmbedPlacement): string;
10
+ /** Insert site-wide codes first, then this page's codes, at each document slot. */
11
+ export declare function injectEmbeds(html: string, globalCodes: EmbedCode[] | null | undefined, pageCodes: EmbedCode[] | null | undefined): string;
12
+ export declare function isEmbedPlacement(value: string): value is EmbedPlacement;
13
+ //# sourceMappingURL=embeds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeds.d.ts","sourceRoot":"","sources":["../../src/ssg/embeds.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,CAAA;AAEnE,MAAM,WAAW,SAAS;IACzB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB;AAID,wBAAgB,WAAW,CAC1B,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,SAAS,EACrC,SAAS,EAAE,cAAc,GACvB,MAAM,CAMR;AAED,mFAAmF;AACnF,wBAAgB,YAAY,CAC3B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,SAAS,EAC3C,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,GAAG,SAAS,GACvC,MAAM,CAWR;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEvE"}
@@ -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-CAcHbUBv.cjs");
25
+ const llmArtifacts = require("../validate-output-DFoN6pkw.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");
@@ -132,9 +132,17 @@ ${jsonLd}`;
132
132
  teleports: ssrContext.teleports,
133
133
  lastmod: pageLastmod(seoData, seoOverride),
134
134
  llm: llmEntry,
135
- noindex: pageNoindex
135
+ noindex: pageNoindex,
136
+ embedCodes: pageEmbedCodes(resolvedData)
136
137
  };
137
138
  }
139
+ function pageEmbedCodes(resolvedData) {
140
+ var _a;
141
+ const page = resolvedData == null ? void 0 : resolvedData.page;
142
+ if (Array.isArray(page == null ? void 0 : page.embed_codes)) return page.embed_codes;
143
+ if (Array.isArray((_a = page == null ? void 0 : page.content) == null ? void 0 : _a.embed_codes)) return page.content.embed_codes;
144
+ return [];
145
+ }
138
146
  function safeJson(value) {
139
147
  return JSON.stringify(value).replace(/</g, "\\u003c");
140
148
  }
@@ -1,5 +1,5 @@
1
- import { j as buildPageHead, k as primaryContextEntry, l as buildJsonLd, m as extractPageText, B as BloxBuildResponseError, n as bloxBuildJson } from "../validate-output-BTvdILwE.js";
2
- import { o, q, f, r, s, t, w, g, x, y, z, A, C, D, p, a, E, F, u, d, v } from "../validate-output-BTvdILwE.js";
1
+ import { j as buildPageHead, k as primaryContextEntry, l as buildJsonLd, m as extractPageText, B as BloxBuildResponseError, n as bloxBuildJson } from "../validate-output-CPzsmg0M.js";
2
+ import { o, q, f, r, s, t, w, g, x, y, z, A, C, D, p, a, E, F, u, d, v } from "../validate-output-CPzsmg0M.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";
@@ -109,9 +109,17 @@ ${jsonLd}`;
109
109
  teleports: ssrContext.teleports,
110
110
  lastmod: pageLastmod(seoData, seoOverride),
111
111
  llm: llmEntry,
112
- noindex: pageNoindex
112
+ noindex: pageNoindex,
113
+ embedCodes: pageEmbedCodes(resolvedData)
113
114
  };
114
115
  }
116
+ function pageEmbedCodes(resolvedData) {
117
+ var _a;
118
+ const page = resolvedData == null ? void 0 : resolvedData.page;
119
+ if (Array.isArray(page == null ? void 0 : page.embed_codes)) return page.embed_codes;
120
+ if (Array.isArray((_a = page == null ? void 0 : page.content) == null ? void 0 : _a.embed_codes)) return page.content.embed_codes;
121
+ return [];
122
+ }
115
123
  function safeJson(value) {
116
124
  return JSON.stringify(value).replace(/</g, "\\u003c");
117
125
  }
@@ -2,6 +2,7 @@ import { WebsiteRead } from '../api/types';
2
2
  import { RedirectEntry } from './seo';
3
3
  import { LlmArtifactsConfig, LlmPageEntry } from './llm-artifacts';
4
4
  import { CollectionResolver } from '../api';
5
+ import { EmbedCode } from './embeds';
5
6
  type ExcludeRule = string | RegExp | ((path: string) => boolean);
6
7
  export interface PrerenderOptions {
7
8
  root?: string;
@@ -74,6 +75,8 @@ export interface RenderResult {
74
75
  noindex?: boolean;
75
76
  /** Per-page LLM extract (title/description/text) for llms.txt artifacts. */
76
77
  llm?: LlmPageEntry;
78
+ /** Raw snippets for this page. Site-wide snippets come from website settings. */
79
+ embedCodes?: EmbedCode[];
77
80
  }
78
81
  export interface PrerenderResult {
79
82
  rendered: string[];
@@ -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,4 +1,4 @@
1
- import { WebsiteRead } from '../api/types';
1
+ import { EmbedCode, WebsiteRead } from '../api/types';
2
2
  import { SeoPageData } from './seo';
3
3
  import { BloxDataRegistry, BloxSeoHead } from '../data/useData';
4
4
  import { LlmArtifactsConfig, LlmPageEntry } from './llm-artifacts';
@@ -55,6 +55,7 @@ export declare function renderBloxSsgPage<TApp>(options: {
55
55
  llm?: LlmPageEntry;
56
56
  /** Page-level noindex (CMS page flag or `useSeo({ noindex })`), not site-wide. */
57
57
  noindex?: boolean;
58
+ embedCodes?: EmbedCode[];
58
59
  }>;
59
60
  /** JSON for embedding in a <script> tag — escapes `<` so `</script>` can't break out. */
60
61
  export declare function safeJson(value: unknown): string;
@@ -1 +1 @@
1
- {"version":3,"file":"render-resolved-page.d.ts","sourceRoot":"","sources":["../../src/ssg/render-resolved-page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAGpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAGvE,UAAU,cAAc;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5B;AAOD,qFAAqF;AACrF,wBAAgB,WAAW,CAC1B,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,EACpC,QAAQ,CAAC,EAAE,WAAW,GACpB,MAAM,GAAG,SAAS,CAQpB;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE;IACtD,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACxE,eAAe,EAAE,CAChB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,OAAO,GAAG,IAAI,EAC5B,QAAQ,EAAE,MAAM,KACZ;QAAE,GAAG,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,iBAAiB,CAAC;QAAC,YAAY,CAAC,EAAE,gBAAgB,CAAA;KAAE,CAAA;IAC9E,8EAA8E;IAC9E,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrE,sEAAsE;IACtE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,WAAW,CAAA;IACxD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+EAA+E;IAC/E,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACpD,8EAA8E;IAC9E,GAAG,CAAC,EAAE,kBAAkB,CAAA;CACxB,GAAG,OAAO,CAAC;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,YAAY,CAAA;IAClB,kFAAkF;IAClF,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB,CAAC,CAiID;AAED,yFAAyF;AACzF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE/C"}
1
+ {"version":3,"file":"render-resolved-page.d.ts","sourceRoot":"","sources":["../../src/ssg/render-resolved-page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAGpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAGvE,UAAU,cAAc;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5B;AAOD,qFAAqF;AACrF,wBAAgB,WAAW,CAC1B,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,EACpC,QAAQ,CAAC,EAAE,WAAW,GACpB,MAAM,GAAG,SAAS,CAQpB;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE;IACtD,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACxE,eAAe,EAAE,CAChB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,OAAO,GAAG,IAAI,EAC5B,QAAQ,EAAE,MAAM,KACZ;QAAE,GAAG,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,iBAAiB,CAAC;QAAC,YAAY,CAAC,EAAE,gBAAgB,CAAA;KAAE,CAAA;IAC9E,8EAA8E;IAC9E,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrE,sEAAsE;IACtE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,WAAW,CAAA;IACxD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+EAA+E;IAC/E,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACpD,8EAA8E;IAC9E,GAAG,CAAC,EAAE,kBAAkB,CAAA;CACxB,GAAG,OAAO,CAAC;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,YAAY,CAAA;IAClB,kFAAkF;IAClF,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAA;CACxB,CAAC,CAkID;AASD,yFAAyF;AACzF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE/C"}
@@ -442,6 +442,28 @@ async function polyfillBloxSsgGlobals(options) {
442
442
  g.window.location = _win.location;
443
443
  g.window.document = _win.document;
444
444
  }
445
+ function embedMarkup(codes, placement) {
446
+ if (!(codes == null ? void 0 : codes.length)) return "";
447
+ return codes.filter((code) => {
448
+ var _a;
449
+ return code && code.enabled !== false && code.placement === placement && ((_a = code.code) == null ? void 0 : _a.trim());
450
+ }).map((code) => code.code.trim()).join("\n");
451
+ }
452
+ function injectEmbeds(html, globalCodes, pageCodes) {
453
+ const codes = [...globalCodes ?? [], ...pageCodes ?? []];
454
+ if (!codes.length) return html;
455
+ let out = html;
456
+ const head = embedMarkup(codes, "head_end");
457
+ const bodyStart = embedMarkup(codes, "body_start");
458
+ const bodyEnd = embedMarkup(codes, "body_end");
459
+ if (head) out = out.replace(/<\/head>/i, `${head}
460
+ </head>`);
461
+ if (bodyStart) out = out.replace(/<body(\s[^>]*)?>/i, (match) => `${match}
462
+ ${bodyStart}`);
463
+ if (bodyEnd) out = out.replace(/<\/body>/i, `${bodyEnd}
464
+ </body>`);
465
+ return out;
466
+ }
445
467
  function isLocaleHome(url, supportedLocales, defaultLocale) {
446
468
  const path2 = (url || "/").split("?")[0].split("#")[0];
447
469
  const segments = path2.split("/").filter(Boolean);
@@ -1196,7 +1218,7 @@ async function prerender({
1196
1218
  );
1197
1219
  }
1198
1220
  async function renderOne(urlPath) {
1199
- var _a2;
1221
+ var _a2, _b2;
1200
1222
  const {
1201
1223
  html,
1202
1224
  head = "",
@@ -1204,7 +1226,8 @@ async function prerender({
1204
1226
  teleports = {},
1205
1227
  lastmod: pageLastmod,
1206
1228
  llm: pageLlm,
1207
- noindex: pageNoindex
1229
+ noindex: pageNoindex,
1230
+ embedCodes = []
1208
1231
  } = await serverMod.render(urlPath, {
1209
1232
  manifest,
1210
1233
  template,
@@ -1214,14 +1237,18 @@ async function prerender({
1214
1237
  resolveCache,
1215
1238
  llm
1216
1239
  });
1217
- const outHtml = injectIntoTemplate(template, head, html, fontPreloads, htmlAttrs, teleports);
1240
+ const outHtml = injectEmbeds(
1241
+ injectIntoTemplate(template, head, html, fontPreloads, htmlAttrs, teleports),
1242
+ (_a2 = website == null ? void 0 : website.integrations) == null ? void 0 : _a2.embed_codes,
1243
+ embedCodes
1244
+ );
1218
1245
  const outfile = outFilePath(absClient, urlPath, mode);
1219
1246
  await fs.mkdir(path.dirname(outfile), { recursive: true });
1220
1247
  await fs.writeFile(outfile, outHtml, "utf8");
1221
1248
  rendered.push(urlPath);
1222
1249
  if (pageLastmod) lastmod[urlPath] = pageLastmod;
1223
1250
  if (llmEnabled && pageLlm) llmPages.push(pageLlm);
1224
- const noindexForPage = pageNoindex ?? (!((_a2 = website == null ? void 0 : website.seo) == null ? void 0 : _a2.noindex) && /<meta[^>]+name=["']robots["'][^>]*noindex/i.test(head));
1251
+ const noindexForPage = pageNoindex ?? (!((_b2 = website == null ? void 0 : website.seo) == null ? void 0 : _b2.noindex) && /<meta[^>]+name=["']robots["'][^>]*noindex/i.test(head));
1225
1252
  if (noindexForPage) noindexPaths.add(urlPath);
1226
1253
  if (crawl) {
1227
1254
  for (const p of discoverInternalLinks(outHtml)) {
@@ -465,6 +465,28 @@ async function polyfillBloxSsgGlobals(options) {
465
465
  g.window.location = _win.location;
466
466
  g.window.document = _win.document;
467
467
  }
468
+ function embedMarkup(codes, placement) {
469
+ if (!(codes == null ? void 0 : codes.length)) return "";
470
+ return codes.filter((code) => {
471
+ var _a;
472
+ return code && code.enabled !== false && code.placement === placement && ((_a = code.code) == null ? void 0 : _a.trim());
473
+ }).map((code) => code.code.trim()).join("\n");
474
+ }
475
+ function injectEmbeds(html, globalCodes, pageCodes) {
476
+ const codes = [...globalCodes ?? [], ...pageCodes ?? []];
477
+ if (!codes.length) return html;
478
+ let out = html;
479
+ const head = embedMarkup(codes, "head_end");
480
+ const bodyStart = embedMarkup(codes, "body_start");
481
+ const bodyEnd = embedMarkup(codes, "body_end");
482
+ if (head) out = out.replace(/<\/head>/i, `${head}
483
+ </head>`);
484
+ if (bodyStart) out = out.replace(/<body(\s[^>]*)?>/i, (match) => `${match}
485
+ ${bodyStart}`);
486
+ if (bodyEnd) out = out.replace(/<\/body>/i, `${bodyEnd}
487
+ </body>`);
488
+ return out;
489
+ }
468
490
  function isLocaleHome(url, supportedLocales, defaultLocale) {
469
491
  const path2 = (url || "/").split("?")[0].split("#")[0];
470
492
  const segments = path2.split("/").filter(Boolean);
@@ -1219,7 +1241,7 @@ async function prerender({
1219
1241
  );
1220
1242
  }
1221
1243
  async function renderOne(urlPath) {
1222
- var _a2;
1244
+ var _a2, _b2;
1223
1245
  const {
1224
1246
  html,
1225
1247
  head = "",
@@ -1227,7 +1249,8 @@ async function prerender({
1227
1249
  teleports = {},
1228
1250
  lastmod: pageLastmod,
1229
1251
  llm: pageLlm,
1230
- noindex: pageNoindex
1252
+ noindex: pageNoindex,
1253
+ embedCodes = []
1231
1254
  } = await serverMod.render(urlPath, {
1232
1255
  manifest,
1233
1256
  template,
@@ -1237,14 +1260,18 @@ async function prerender({
1237
1260
  resolveCache,
1238
1261
  llm
1239
1262
  });
1240
- const outHtml = injectIntoTemplate(template, head, html, fontPreloads, htmlAttrs, teleports);
1263
+ const outHtml = injectEmbeds(
1264
+ injectIntoTemplate(template, head, html, fontPreloads, htmlAttrs, teleports),
1265
+ (_a2 = website == null ? void 0 : website.integrations) == null ? void 0 : _a2.embed_codes,
1266
+ embedCodes
1267
+ );
1241
1268
  const outfile = outFilePath(absClient, urlPath, mode);
1242
1269
  await fs.mkdir(path.dirname(outfile), { recursive: true });
1243
1270
  await fs.writeFile(outfile, outHtml, "utf8");
1244
1271
  rendered.push(urlPath);
1245
1272
  if (pageLastmod) lastmod[urlPath] = pageLastmod;
1246
1273
  if (llmEnabled && pageLlm) llmPages.push(pageLlm);
1247
- const noindexForPage = pageNoindex ?? (!((_a2 = website == null ? void 0 : website.seo) == null ? void 0 : _a2.noindex) && /<meta[^>]+name=["']robots["'][^>]*noindex/i.test(head));
1274
+ const noindexForPage = pageNoindex ?? (!((_b2 = website == null ? void 0 : website.seo) == null ? void 0 : _b2.noindex) && /<meta[^>]+name=["']robots["'][^>]*noindex/i.test(head));
1248
1275
  if (noindexForPage) noindexPaths.add(urlPath);
1249
1276
  if (crawl) {
1250
1277
  for (const p of discoverInternalLinks(outHtml)) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/blox",
3
3
  "type": "module",
4
- "version": "1.20.6",
4
+ "version": "1.20.17",
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",
@@ -112,7 +112,7 @@
112
112
  "vue": "^3.5.43",
113
113
  "vue-router": "^4.6.4",
114
114
  "vue-tsc": "^2.2.12",
115
- "@bagelink/sdk": "1.20.5"
115
+ "@bagelink/sdk": "1.20.17"
116
116
  },
117
117
  "dependencies": {
118
118
  "magic-string": "^0.30.21",