@bagelink/blox 1.13.5 → 1.14.0
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/CmsPageView.vue.d.ts.map +1 -1
- package/dist/PreviewApp-BrthGx2F.js +4 -0
- package/dist/PreviewApp-CV_Uh9-d.cjs +4 -0
- package/dist/PreviewApp.vue.d.ts.map +1 -1
- package/dist/PreviewApp.vue_vue_type_style_index_0_lang-BkGWMbsE.js +185 -0
- package/dist/PreviewApp.vue_vue_type_style_index_0_lang-CFS05Itn.cjs +184 -0
- package/dist/PreviewRenderer.d.ts.map +1 -1
- package/dist/bridge.d.ts +1 -0
- package/dist/bridge.d.ts.map +1 -1
- package/dist/core-CPXNfJ-Z.js +460 -0
- package/dist/core-D1FiZJtz.cjs +459 -0
- package/dist/core.d.ts.map +1 -1
- package/dist/createBloxApp.d.ts +107 -0
- package/dist/createBloxApp.d.ts.map +1 -0
- package/dist/defineBlock.d.ts +19 -4
- package/dist/defineBlock.d.ts.map +1 -1
- package/dist/index.cjs +87 -604
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +86 -602
- package/dist/{prerender-CjJwDXkC.cjs → prerender-Bi7YtzSp.cjs} +48 -46
- package/dist/{prerender-oMLxrKGs.js → prerender-D3Q4jKXm.js} +51 -49
- package/dist/schema.d.ts +2 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/ssg/cli.cjs +2 -2
- package/dist/ssg/cli.mjs +2 -2
- package/dist/ssg/client.cjs +9 -7
- package/dist/ssg/client.d.ts +1 -1
- package/dist/ssg/client.d.ts.map +1 -1
- package/dist/ssg/client.mjs +3 -1
- package/dist/ssg/createSSREntry.d.ts +73 -0
- package/dist/ssg/createSSREntry.d.ts.map +1 -0
- package/dist/ssg/index.cjs +116 -8
- package/dist/ssg/index.d.ts +2 -0
- package/dist/ssg/index.d.ts.map +1 -1
- package/dist/ssg/index.mjs +93 -6
- package/dist/ssg/prerender.d.ts.map +1 -1
- package/dist/style.css +5 -46
- package/dist/vite-plugin.cjs +142 -3
- package/dist/vite-plugin.d.ts +22 -21
- package/dist/vite-plugin.d.ts.map +1 -1
- package/dist/vite-plugin.mjs +142 -3
- package/package.json +4 -1
- package/dist/PreviewApp-BZNzZkit.js +0 -4
- package/dist/PreviewApp-C1WvJWI4.cjs +0 -4
- package/dist/constants-BjitNk-W.js +0 -8
- package/dist/constants-CFB_pMvT.cjs +0 -7
|
@@ -112,50 +112,6 @@ function extractCollectionRefs(pages) {
|
|
|
112
112
|
}
|
|
113
113
|
return refs;
|
|
114
114
|
}
|
|
115
|
-
async function polyfillBloxSsgGlobals(options) {
|
|
116
|
-
const { env } = await import("node:process");
|
|
117
|
-
const pageUrl = (options == null ? void 0 : options.pageUrl) ?? env.BAGELINK_API_URL ?? "https://example.com/";
|
|
118
|
-
const { Window: HappyWindow } = await import("happy-dom");
|
|
119
|
-
const _win = new HappyWindow({ url: pageUrl });
|
|
120
|
-
const g = globalThis;
|
|
121
|
-
if (g.window == null) g.window = g;
|
|
122
|
-
for (const key of Object.getOwnPropertyNames(_win)) {
|
|
123
|
-
if (key === "window" || key === "global" || key === "globalThis") continue;
|
|
124
|
-
try {
|
|
125
|
-
if (!(key in g)) g[key] = _win[key];
|
|
126
|
-
} catch {
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
for (const key of [
|
|
130
|
-
"document",
|
|
131
|
-
"location",
|
|
132
|
-
"localStorage",
|
|
133
|
-
"sessionStorage",
|
|
134
|
-
"navigator",
|
|
135
|
-
"Element",
|
|
136
|
-
"Document",
|
|
137
|
-
"HTMLElement",
|
|
138
|
-
"Event",
|
|
139
|
-
"CustomEvent",
|
|
140
|
-
"MouseEvent",
|
|
141
|
-
"KeyboardEvent",
|
|
142
|
-
"MutationObserver",
|
|
143
|
-
"IntersectionObserver",
|
|
144
|
-
"ResizeObserver",
|
|
145
|
-
"getComputedStyle",
|
|
146
|
-
"matchMedia",
|
|
147
|
-
"requestAnimationFrame",
|
|
148
|
-
"cancelAnimationFrame"
|
|
149
|
-
]) {
|
|
150
|
-
try {
|
|
151
|
-
g[key] = _win[key];
|
|
152
|
-
} catch {
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
g.window = g;
|
|
156
|
-
g.window.location = _win.location;
|
|
157
|
-
g.window.document = _win.document;
|
|
158
|
-
}
|
|
159
115
|
function buildPageHead(options) {
|
|
160
116
|
const { url, resolvedData, website, stateScript } = options;
|
|
161
117
|
const parts = [];
|
|
@@ -267,7 +223,8 @@ Sitemap: ${base}/sitemap.xml
|
|
|
267
223
|
` : "";
|
|
268
224
|
if (robotsTxt) {
|
|
269
225
|
if (sitemapLine && !robotsTxt.toLowerCase().includes("sitemap:")) {
|
|
270
|
-
return robotsTxt.trimEnd()
|
|
226
|
+
return `${robotsTxt.trimEnd()}
|
|
227
|
+
${sitemapLine}`;
|
|
271
228
|
}
|
|
272
229
|
return robotsTxt;
|
|
273
230
|
}
|
|
@@ -277,7 +234,8 @@ ${sitemapLine}`;
|
|
|
277
234
|
}
|
|
278
235
|
function generateNetlifyRedirects(redirects) {
|
|
279
236
|
if (redirects.length === 0) return "";
|
|
280
|
-
return redirects.map((r) => `${r.from_path} ${r.to_path} ${r.status_code}`).join("\n")
|
|
237
|
+
return `${redirects.map((r) => `${r.from_path} ${r.to_path} ${r.status_code}`).join("\n")}
|
|
238
|
+
`;
|
|
281
239
|
}
|
|
282
240
|
function stripTemplateSeoTags(template) {
|
|
283
241
|
return template.replace(/<title>[^<]*<\/title>/gi, "<!--ssg:title-->").replace(/<meta\s[^>]*name\s*=\s*["']description["'][^>]*>/gi, "").replace(/<meta\s[^>]*property\s*=\s*["']og:[^"']*["'][^>]*>/gi, "").replace(/<meta\s[^>]*(?:property|name)\s*=\s*["']twitter:[^"']*["'][^>]*>/gi, "").replace(/<link\s[^>]*rel\s*=\s*["']apple-touch-icon["'][^>]*>/gi, "").replace(/<link\s[^>]*rel\s*=\s*["']icon["'][^>]*>/gi, "").replace(/\n\s*\n\s*\n/g, "\n\n");
|
|
@@ -300,6 +258,50 @@ function extractPrimaryContext(contexts) {
|
|
|
300
258
|
function esc(s) {
|
|
301
259
|
return s.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">");
|
|
302
260
|
}
|
|
261
|
+
async function polyfillBloxSsgGlobals(options) {
|
|
262
|
+
const { env } = await import("node:process");
|
|
263
|
+
const pageUrl = (options == null ? void 0 : options.pageUrl) ?? env.BAGELINK_API_URL ?? "https://example.com/";
|
|
264
|
+
const { Window: HappyWindow } = await import("happy-dom");
|
|
265
|
+
const _win = new HappyWindow({ url: pageUrl });
|
|
266
|
+
const g = globalThis;
|
|
267
|
+
if (g.window == null) g.window = g;
|
|
268
|
+
for (const key of Object.getOwnPropertyNames(_win)) {
|
|
269
|
+
if (key === "window" || key === "global" || key === "globalThis") continue;
|
|
270
|
+
try {
|
|
271
|
+
if (!(key in g)) g[key] = _win[key];
|
|
272
|
+
} catch {
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
for (const key of [
|
|
276
|
+
"document",
|
|
277
|
+
"location",
|
|
278
|
+
"localStorage",
|
|
279
|
+
"sessionStorage",
|
|
280
|
+
"navigator",
|
|
281
|
+
"Element",
|
|
282
|
+
"Document",
|
|
283
|
+
"HTMLElement",
|
|
284
|
+
"Event",
|
|
285
|
+
"CustomEvent",
|
|
286
|
+
"MouseEvent",
|
|
287
|
+
"KeyboardEvent",
|
|
288
|
+
"MutationObserver",
|
|
289
|
+
"IntersectionObserver",
|
|
290
|
+
"ResizeObserver",
|
|
291
|
+
"getComputedStyle",
|
|
292
|
+
"matchMedia",
|
|
293
|
+
"requestAnimationFrame",
|
|
294
|
+
"cancelAnimationFrame"
|
|
295
|
+
]) {
|
|
296
|
+
try {
|
|
297
|
+
g[key] = _win[key];
|
|
298
|
+
} catch {
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
g.window = g;
|
|
302
|
+
g.window.location = _win.location;
|
|
303
|
+
g.window.document = _win.document;
|
|
304
|
+
}
|
|
303
305
|
async function prerender({
|
|
304
306
|
root = process.cwd(),
|
|
305
307
|
clientOutDir = "dist/client",
|
|
@@ -89,50 +89,6 @@ function extractCollectionRefs(pages) {
|
|
|
89
89
|
}
|
|
90
90
|
return refs;
|
|
91
91
|
}
|
|
92
|
-
async function polyfillBloxSsgGlobals(options) {
|
|
93
|
-
const { env } = await import("node:process");
|
|
94
|
-
const pageUrl = (options == null ? void 0 : options.pageUrl) ?? env.BAGELINK_API_URL ?? "https://example.com/";
|
|
95
|
-
const { Window: HappyWindow } = await import("happy-dom");
|
|
96
|
-
const _win = new HappyWindow({ url: pageUrl });
|
|
97
|
-
const g = globalThis;
|
|
98
|
-
if (g.window == null) g.window = g;
|
|
99
|
-
for (const key of Object.getOwnPropertyNames(_win)) {
|
|
100
|
-
if (key === "window" || key === "global" || key === "globalThis") continue;
|
|
101
|
-
try {
|
|
102
|
-
if (!(key in g)) g[key] = _win[key];
|
|
103
|
-
} catch {
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
for (const key of [
|
|
107
|
-
"document",
|
|
108
|
-
"location",
|
|
109
|
-
"localStorage",
|
|
110
|
-
"sessionStorage",
|
|
111
|
-
"navigator",
|
|
112
|
-
"Element",
|
|
113
|
-
"Document",
|
|
114
|
-
"HTMLElement",
|
|
115
|
-
"Event",
|
|
116
|
-
"CustomEvent",
|
|
117
|
-
"MouseEvent",
|
|
118
|
-
"KeyboardEvent",
|
|
119
|
-
"MutationObserver",
|
|
120
|
-
"IntersectionObserver",
|
|
121
|
-
"ResizeObserver",
|
|
122
|
-
"getComputedStyle",
|
|
123
|
-
"matchMedia",
|
|
124
|
-
"requestAnimationFrame",
|
|
125
|
-
"cancelAnimationFrame"
|
|
126
|
-
]) {
|
|
127
|
-
try {
|
|
128
|
-
g[key] = _win[key];
|
|
129
|
-
} catch {
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
g.window = g;
|
|
133
|
-
g.window.location = _win.location;
|
|
134
|
-
g.window.document = _win.document;
|
|
135
|
-
}
|
|
136
92
|
function buildPageHead(options) {
|
|
137
93
|
const { url, resolvedData, website, stateScript } = options;
|
|
138
94
|
const parts = [];
|
|
@@ -244,7 +200,8 @@ Sitemap: ${base}/sitemap.xml
|
|
|
244
200
|
` : "";
|
|
245
201
|
if (robotsTxt) {
|
|
246
202
|
if (sitemapLine && !robotsTxt.toLowerCase().includes("sitemap:")) {
|
|
247
|
-
return robotsTxt.trimEnd()
|
|
203
|
+
return `${robotsTxt.trimEnd()}
|
|
204
|
+
${sitemapLine}`;
|
|
248
205
|
}
|
|
249
206
|
return robotsTxt;
|
|
250
207
|
}
|
|
@@ -254,7 +211,8 @@ ${sitemapLine}`;
|
|
|
254
211
|
}
|
|
255
212
|
function generateNetlifyRedirects(redirects) {
|
|
256
213
|
if (redirects.length === 0) return "";
|
|
257
|
-
return redirects.map((r) => `${r.from_path} ${r.to_path} ${r.status_code}`).join("\n")
|
|
214
|
+
return `${redirects.map((r) => `${r.from_path} ${r.to_path} ${r.status_code}`).join("\n")}
|
|
215
|
+
`;
|
|
258
216
|
}
|
|
259
217
|
function stripTemplateSeoTags(template) {
|
|
260
218
|
return template.replace(/<title>[^<]*<\/title>/gi, "<!--ssg:title-->").replace(/<meta\s[^>]*name\s*=\s*["']description["'][^>]*>/gi, "").replace(/<meta\s[^>]*property\s*=\s*["']og:[^"']*["'][^>]*>/gi, "").replace(/<meta\s[^>]*(?:property|name)\s*=\s*["']twitter:[^"']*["'][^>]*>/gi, "").replace(/<link\s[^>]*rel\s*=\s*["']apple-touch-icon["'][^>]*>/gi, "").replace(/<link\s[^>]*rel\s*=\s*["']icon["'][^>]*>/gi, "").replace(/\n\s*\n\s*\n/g, "\n\n");
|
|
@@ -277,6 +235,50 @@ function extractPrimaryContext(contexts) {
|
|
|
277
235
|
function esc(s) {
|
|
278
236
|
return s.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">");
|
|
279
237
|
}
|
|
238
|
+
async function polyfillBloxSsgGlobals(options) {
|
|
239
|
+
const { env } = await import("node:process");
|
|
240
|
+
const pageUrl = (options == null ? void 0 : options.pageUrl) ?? env.BAGELINK_API_URL ?? "https://example.com/";
|
|
241
|
+
const { Window: HappyWindow } = await import("happy-dom");
|
|
242
|
+
const _win = new HappyWindow({ url: pageUrl });
|
|
243
|
+
const g = globalThis;
|
|
244
|
+
if (g.window == null) g.window = g;
|
|
245
|
+
for (const key of Object.getOwnPropertyNames(_win)) {
|
|
246
|
+
if (key === "window" || key === "global" || key === "globalThis") continue;
|
|
247
|
+
try {
|
|
248
|
+
if (!(key in g)) g[key] = _win[key];
|
|
249
|
+
} catch {
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
for (const key of [
|
|
253
|
+
"document",
|
|
254
|
+
"location",
|
|
255
|
+
"localStorage",
|
|
256
|
+
"sessionStorage",
|
|
257
|
+
"navigator",
|
|
258
|
+
"Element",
|
|
259
|
+
"Document",
|
|
260
|
+
"HTMLElement",
|
|
261
|
+
"Event",
|
|
262
|
+
"CustomEvent",
|
|
263
|
+
"MouseEvent",
|
|
264
|
+
"KeyboardEvent",
|
|
265
|
+
"MutationObserver",
|
|
266
|
+
"IntersectionObserver",
|
|
267
|
+
"ResizeObserver",
|
|
268
|
+
"getComputedStyle",
|
|
269
|
+
"matchMedia",
|
|
270
|
+
"requestAnimationFrame",
|
|
271
|
+
"cancelAnimationFrame"
|
|
272
|
+
]) {
|
|
273
|
+
try {
|
|
274
|
+
g[key] = _win[key];
|
|
275
|
+
} catch {
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
g.window = g;
|
|
279
|
+
g.window.location = _win.location;
|
|
280
|
+
g.window.document = _win.document;
|
|
281
|
+
}
|
|
280
282
|
async function prerender({
|
|
281
283
|
root = process.cwd(),
|
|
282
284
|
clientOutDir = "dist/client",
|
|
@@ -508,12 +510,12 @@ function discoverInternalLinks(html) {
|
|
|
508
510
|
return [...out];
|
|
509
511
|
}
|
|
510
512
|
export {
|
|
511
|
-
|
|
513
|
+
prerender as a,
|
|
512
514
|
buildPageHead as b,
|
|
513
|
-
|
|
515
|
+
fetchCmsPrerenderPaths as c,
|
|
514
516
|
buildSiteHead as d,
|
|
515
517
|
generateRobotsTxt as e,
|
|
516
|
-
|
|
518
|
+
fetchCmsSiteData as f,
|
|
517
519
|
generateNetlifyRedirects as g,
|
|
518
520
|
generateSitemapXml as h,
|
|
519
521
|
polyfillBloxSsgGlobals as p
|
package/dist/schema.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ export interface BlockSchema {
|
|
|
14
14
|
fields?: SchemaDefinition;
|
|
15
15
|
/** Default prop values. Merged with block props at render time. */
|
|
16
16
|
defaults?: Record<string, unknown>;
|
|
17
|
+
/** True when this block fetches its own data from a datastore collection. */
|
|
18
|
+
dataSource?: boolean;
|
|
17
19
|
}
|
|
18
20
|
export interface BlockDefinition {
|
|
19
21
|
component: Component;
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,WAAW,WAAW;IAC3B,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,MAAM,WAAW,WAAW;IAC3B,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,6EAA6E;IAC7E,UAAU,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,WAAW,CAAA;CACnB;AAED,+EAA+E;AAC/E,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAA"}
|
package/dist/ssg/cli.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
"use strict";
|
|
3
3
|
const process = require("node:process");
|
|
4
|
-
const prerender = require("../prerender-
|
|
4
|
+
const prerender = require("../prerender-Bi7YtzSp.cjs");
|
|
5
5
|
async function resolveApiBase(mode) {
|
|
6
6
|
if (process.env.BAGELINK_API_URL != null && process.env.BAGELINK_API_URL !== "") {
|
|
7
7
|
return { apiBase: process.env.BAGELINK_API_URL };
|
|
@@ -76,7 +76,7 @@ Environment:
|
|
|
76
76
|
let website = null;
|
|
77
77
|
let websiteId = "";
|
|
78
78
|
let redirects = [];
|
|
79
|
-
|
|
79
|
+
const collections = {};
|
|
80
80
|
try {
|
|
81
81
|
const siteData = await prerender.fetchCmsSiteData(apiBase, websiteName);
|
|
82
82
|
paths = siteData.paths;
|
package/dist/ssg/cli.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
import process from "node:process";
|
|
3
|
-
import { p as polyfillBloxSsgGlobals,
|
|
3
|
+
import { p as polyfillBloxSsgGlobals, f as fetchCmsSiteData, a as prerender } from "../prerender-D3Q4jKXm.js";
|
|
4
4
|
async function resolveApiBase(mode) {
|
|
5
5
|
if (process.env.BAGELINK_API_URL != null && process.env.BAGELINK_API_URL !== "") {
|
|
6
6
|
return { apiBase: process.env.BAGELINK_API_URL };
|
|
@@ -75,7 +75,7 @@ Environment:
|
|
|
75
75
|
let website = null;
|
|
76
76
|
let websiteId = "";
|
|
77
77
|
let redirects = [];
|
|
78
|
-
|
|
78
|
+
const collections = {};
|
|
79
79
|
try {
|
|
80
80
|
const siteData = await fetchCmsSiteData(apiBase, websiteName);
|
|
81
81
|
paths = siteData.paths;
|
package/dist/ssg/client.cjs
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const
|
|
3
|
+
const BLOX_STATE_WINDOW_KEY = "__BLOX_STATE__";
|
|
4
|
+
const BLOX_COLLECTIONS_WINDOW_KEY = "__BLOX_COLLECTIONS__";
|
|
5
|
+
const BLOX_WEBSITE_ID_WINDOW_KEY = "__BLOX_WEBSITE_ID__";
|
|
4
6
|
let _cache = null;
|
|
5
7
|
function readCache() {
|
|
6
8
|
if (_cache != null) return _cache;
|
|
7
9
|
if (typeof window === "undefined") return null;
|
|
8
|
-
const raw = window[
|
|
10
|
+
const raw = window[BLOX_COLLECTIONS_WINDOW_KEY];
|
|
9
11
|
if (raw && typeof raw === "object" && !Array.isArray(raw)) {
|
|
10
12
|
_cache = raw;
|
|
11
13
|
return _cache;
|
|
@@ -17,7 +19,7 @@ function getCollectionCache() {
|
|
|
17
19
|
}
|
|
18
20
|
function getEmbeddedWebsiteId() {
|
|
19
21
|
if (typeof window === "undefined") return "";
|
|
20
|
-
const id = window[
|
|
22
|
+
const id = window[BLOX_WEBSITE_ID_WINDOW_KEY];
|
|
21
23
|
return typeof id === "string" ? id : "";
|
|
22
24
|
}
|
|
23
25
|
function installCollectionCache() {
|
|
@@ -41,7 +43,7 @@ function installCollectionCache() {
|
|
|
41
43
|
return config;
|
|
42
44
|
};
|
|
43
45
|
}
|
|
44
|
-
function installBloxStateCache(globalKey =
|
|
46
|
+
function installBloxStateCache(globalKey = BLOX_STATE_WINDOW_KEY) {
|
|
45
47
|
if (typeof window === "undefined") return;
|
|
46
48
|
const state = window[globalKey];
|
|
47
49
|
if (!state || typeof state !== "object" || Object.keys(state).length === 0) return;
|
|
@@ -66,9 +68,9 @@ function installBloxStateCache(globalKey = constants.BLOX_STATE_WINDOW_KEY) {
|
|
|
66
68
|
return originalFetch(input, init);
|
|
67
69
|
};
|
|
68
70
|
}
|
|
69
|
-
exports.BLOX_COLLECTIONS_WINDOW_KEY =
|
|
70
|
-
exports.BLOX_STATE_WINDOW_KEY =
|
|
71
|
-
exports.BLOX_WEBSITE_ID_WINDOW_KEY =
|
|
71
|
+
exports.BLOX_COLLECTIONS_WINDOW_KEY = BLOX_COLLECTIONS_WINDOW_KEY;
|
|
72
|
+
exports.BLOX_STATE_WINDOW_KEY = BLOX_STATE_WINDOW_KEY;
|
|
73
|
+
exports.BLOX_WEBSITE_ID_WINDOW_KEY = BLOX_WEBSITE_ID_WINDOW_KEY;
|
|
72
74
|
exports.getCollectionCache = getCollectionCache;
|
|
73
75
|
exports.getEmbeddedWebsiteId = getEmbeddedWebsiteId;
|
|
74
76
|
exports.installBloxStateCache = installBloxStateCache;
|
package/dist/ssg/client.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { getCollectionCache, getEmbeddedWebsiteId, installCollectionCache } from './collection-cache';
|
|
1
2
|
/**
|
|
2
3
|
* @bagelink/blox/ssg/client — browser-safe SSG utilities.
|
|
3
4
|
*
|
|
@@ -5,6 +6,5 @@
|
|
|
5
6
|
* It does NOT pull in Node.js modules (fs, path, url, happy-dom).
|
|
6
7
|
*/
|
|
7
8
|
export { BLOX_COLLECTIONS_WINDOW_KEY, BLOX_STATE_WINDOW_KEY, BLOX_WEBSITE_ID_WINDOW_KEY } from './constants';
|
|
8
|
-
export { getCollectionCache, getEmbeddedWebsiteId, installCollectionCache } from './collection-cache';
|
|
9
9
|
export { installBloxStateCache } from './state-cache';
|
|
10
10
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/ssg/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/ssg/client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/ssg/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AACrG;;;;;GAKG;AACH,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAC5G,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA"}
|
package/dist/ssg/client.mjs
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
const BLOX_STATE_WINDOW_KEY = "__BLOX_STATE__";
|
|
2
|
+
const BLOX_COLLECTIONS_WINDOW_KEY = "__BLOX_COLLECTIONS__";
|
|
3
|
+
const BLOX_WEBSITE_ID_WINDOW_KEY = "__BLOX_WEBSITE_ID__";
|
|
2
4
|
let _cache = null;
|
|
3
5
|
function readCache() {
|
|
4
6
|
if (_cache != null) return _cache;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Component } from 'vue';
|
|
2
|
+
import { Router } from 'vue-router';
|
|
3
|
+
import { BlockModule } from '../defineBlock';
|
|
4
|
+
import { RenderContext, RenderResult } from './prerender';
|
|
5
|
+
export interface CreateBloxSSREntryOptions {
|
|
6
|
+
/** Root Vue component (App.vue). */
|
|
7
|
+
rootComponent: Component;
|
|
8
|
+
/**
|
|
9
|
+
* Router factory. Must return a fresh router for each render call.
|
|
10
|
+
* @param mode - 'web' for client, 'memory' for SSR
|
|
11
|
+
* @param url - initial URL (only for 'memory' mode)
|
|
12
|
+
*/
|
|
13
|
+
createRouter: (mode: 'web' | 'memory', url?: string) => Router;
|
|
14
|
+
/**
|
|
15
|
+
* Block SFC modules — same format as `createBloxApp`.
|
|
16
|
+
* Use `import.meta.glob('./components/blocks/*.vue', { eager: true })`.
|
|
17
|
+
*/
|
|
18
|
+
modules: BlockModule[] | Record<string, BlockModule>;
|
|
19
|
+
/** CMS website name. */
|
|
20
|
+
websiteName: string;
|
|
21
|
+
/** Datastore store identifier. */
|
|
22
|
+
store: string;
|
|
23
|
+
/** API base URL for SSR fetches. @default process.env.BAGELINK_API_URL ?? 'https://api.bagel.to' */
|
|
24
|
+
apiBase?: string;
|
|
25
|
+
/** Default locale. @default 'en' */
|
|
26
|
+
locale?: string;
|
|
27
|
+
/** Supported locales. @default [locale] */
|
|
28
|
+
supportedLocales?: string[];
|
|
29
|
+
/**
|
|
30
|
+
* Extra Vue plugins to install on the SSR app.
|
|
31
|
+
* Typically `[BagelVue]` from `@bagelink/vue`.
|
|
32
|
+
*/
|
|
33
|
+
plugins?: Array<import('vue').Plugin | [import('vue').Plugin, ...unknown[]]>;
|
|
34
|
+
/**
|
|
35
|
+
* Global components to register.
|
|
36
|
+
* Typically `{ RouterWrapper }` from `@bagelink/vue`.
|
|
37
|
+
*/
|
|
38
|
+
globalComponents?: Record<string, Component>;
|
|
39
|
+
}
|
|
40
|
+
export interface BloxSSREntry {
|
|
41
|
+
render: (url: string, ctx: RenderContext) => Promise<RenderResult>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Factory that produces the `{ render }` export for `main.server.ts`.
|
|
45
|
+
*
|
|
46
|
+
* Encapsulates all SSR boilerplate:
|
|
47
|
+
* - Website ID resolution
|
|
48
|
+
* - CMS page data fetching
|
|
49
|
+
* - Vue SSR app creation with Blox + Pinia
|
|
50
|
+
* - `renderBloxSsgPage()` call with full context passthrough
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```ts
|
|
54
|
+
* import { createBloxSSREntry } from '@bagelink/blox/ssg'
|
|
55
|
+
* import { BagelVue, RouterWrapper } from '@bagelink/vue'
|
|
56
|
+
* import App from './App.vue'
|
|
57
|
+
* import { createRouter } from './router'
|
|
58
|
+
*
|
|
59
|
+
* const blocks = import.meta.glob('./components/blocks/*.vue', { eager: true })
|
|
60
|
+
*
|
|
61
|
+
* export const { render } = createBloxSSREntry({
|
|
62
|
+
* rootComponent: App,
|
|
63
|
+
* createRouter,
|
|
64
|
+
* modules: Object.values(blocks),
|
|
65
|
+
* websiteName: 'cylogic',
|
|
66
|
+
* store: 'cylogic',
|
|
67
|
+
* plugins: [BagelVue],
|
|
68
|
+
* globalComponents: { RouterWrapper },
|
|
69
|
+
* })
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
export declare function createBloxSSREntry(options: CreateBloxSSREntryOptions): BloxSSREntry;
|
|
73
|
+
//# sourceMappingURL=createSSREntry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createSSREntry.d.ts","sourceRoot":"","sources":["../../src/ssg/createSSREntry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAO,SAAS,EAAE,MAAM,KAAK,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAO9D,MAAM,WAAW,yBAAyB;IACzC,oCAAoC;IACpC,aAAa,EAAE,SAAS,CAAA;IACxB;;;;OAIG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAC9D;;;OAGG;IACH,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACpD,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,oGAAoG;IACpG,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,KAAK,EAAE,MAAM,GAAG,CAAC,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAA;IAC5E;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CAC5C;AAED,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;CAClE;AAKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,YAAY,CAqGnF"}
|
package/dist/ssg/index.cjs
CHANGED
|
@@ -1,15 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
|
+
for (let key of __getOwnPropNames(from))
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
12
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
+
}
|
|
14
|
+
return to;
|
|
15
|
+
};
|
|
16
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
17
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
18
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
19
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
20
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
2
24
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const prerender = require("../prerender-
|
|
25
|
+
const prerender = require("../prerender-Bi7YtzSp.cjs");
|
|
4
26
|
const ssg_client = require("./client.cjs");
|
|
5
|
-
const
|
|
27
|
+
const pinia = require("pinia");
|
|
28
|
+
const vue = require("vue");
|
|
29
|
+
const core = require("../core-D1FiZJtz.cjs");
|
|
6
30
|
async function renderBloxSsgPage(options) {
|
|
7
31
|
const {
|
|
8
32
|
url,
|
|
9
33
|
resolvedData,
|
|
10
34
|
renderToString,
|
|
11
35
|
createAppForUrl,
|
|
12
|
-
stateWindowKey =
|
|
36
|
+
stateWindowKey = ssg_client.BLOX_STATE_WINDOW_KEY,
|
|
13
37
|
website = null,
|
|
14
38
|
websiteId = "",
|
|
15
39
|
collections
|
|
@@ -25,8 +49,8 @@ async function renderBloxSsgPage(options) {
|
|
|
25
49
|
await router.isReady();
|
|
26
50
|
const html = await renderToString(app);
|
|
27
51
|
const stateScript = resolvedData != null ? `<script>window[${JSON.stringify(stateWindowKey)}]=${JSON.stringify({ [url]: resolvedData })};${"<"}/script>` : "";
|
|
28
|
-
const collectionsScript = collections && Object.keys(collections).length > 0 ? `<script>window[${JSON.stringify(
|
|
29
|
-
const websiteIdScript = websiteId ? `<script>window[${JSON.stringify(
|
|
52
|
+
const collectionsScript = collections && Object.keys(collections).length > 0 ? `<script>window[${JSON.stringify(ssg_client.BLOX_COLLECTIONS_WINDOW_KEY)}]=${JSON.stringify(collections)};${"<"}/script>` : "";
|
|
53
|
+
const websiteIdScript = websiteId ? `<script>window[${JSON.stringify(ssg_client.BLOX_WEBSITE_ID_WINDOW_KEY)}]=${JSON.stringify(websiteId)};${"<"}/script>` : "";
|
|
30
54
|
const head = prerender.buildPageHead({
|
|
31
55
|
url,
|
|
32
56
|
resolvedData,
|
|
@@ -44,6 +68,89 @@ async function renderBloxSsgPage(options) {
|
|
|
44
68
|
}
|
|
45
69
|
}
|
|
46
70
|
}
|
|
71
|
+
let _websiteId = null;
|
|
72
|
+
function createBloxSSREntry(options) {
|
|
73
|
+
var _a;
|
|
74
|
+
const {
|
|
75
|
+
rootComponent,
|
|
76
|
+
createRouter,
|
|
77
|
+
modules,
|
|
78
|
+
websiteName,
|
|
79
|
+
store,
|
|
80
|
+
locale = "en",
|
|
81
|
+
supportedLocales = [locale],
|
|
82
|
+
plugins = [],
|
|
83
|
+
globalComponents = {}
|
|
84
|
+
} = options;
|
|
85
|
+
const apiBase = options.apiBase ?? (typeof process !== "undefined" ? (_a = process.env) == null ? void 0 : _a.BAGELINK_API_URL : void 0) ?? "https://api.bagel.to";
|
|
86
|
+
async function getWebsiteId() {
|
|
87
|
+
if (_websiteId) return _websiteId;
|
|
88
|
+
const res = await fetch(`${apiBase}/cms/websites`);
|
|
89
|
+
const data = await res.json();
|
|
90
|
+
const sites = Array.isArray(data) ? data : (data == null ? void 0 : data.data) ?? [];
|
|
91
|
+
const site = sites.find((s) => s.name === websiteName);
|
|
92
|
+
if (!(site == null ? void 0 : site.id)) throw new Error(`Website "${websiteName}" not found`);
|
|
93
|
+
_websiteId = site.id;
|
|
94
|
+
return _websiteId;
|
|
95
|
+
}
|
|
96
|
+
async function fetchResolvedPage(urlPath) {
|
|
97
|
+
const websiteId = await getWebsiteId();
|
|
98
|
+
const url = `${apiBase}/cms/websites/${websiteId}/resolve-path?path=${encodeURIComponent(urlPath)}&locale=${locale}`;
|
|
99
|
+
const res = await fetch(url);
|
|
100
|
+
if (!res.ok) throw new Error(`resolve-path ${res.status}: ${urlPath}`);
|
|
101
|
+
return res.json();
|
|
102
|
+
}
|
|
103
|
+
function buildApp(url) {
|
|
104
|
+
const router = createRouter("memory", url);
|
|
105
|
+
const app = vue.createSSRApp(rootComponent);
|
|
106
|
+
const pinia$1 = pinia.createPinia();
|
|
107
|
+
pinia$1.use(({ store: s }) => {
|
|
108
|
+
s.router = vue.markRaw(router);
|
|
109
|
+
});
|
|
110
|
+
const blox = core.createBlox({
|
|
111
|
+
modules,
|
|
112
|
+
websiteName,
|
|
113
|
+
store,
|
|
114
|
+
defaultLocale: locale,
|
|
115
|
+
supportedLocales,
|
|
116
|
+
router
|
|
117
|
+
});
|
|
118
|
+
for (const plugin of plugins) {
|
|
119
|
+
if (Array.isArray(plugin)) {
|
|
120
|
+
const [p, ...args] = plugin;
|
|
121
|
+
app.use(p, ...args);
|
|
122
|
+
} else {
|
|
123
|
+
app.use(plugin);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
blox.install(app, {});
|
|
127
|
+
app.use(pinia$1);
|
|
128
|
+
app.use(router);
|
|
129
|
+
for (const [name, comp] of Object.entries(globalComponents)) {
|
|
130
|
+
app.component(name, comp);
|
|
131
|
+
}
|
|
132
|
+
return { app, router };
|
|
133
|
+
}
|
|
134
|
+
async function render(url, ctx) {
|
|
135
|
+
let resolvedData = null;
|
|
136
|
+
try {
|
|
137
|
+
resolvedData = await fetchResolvedPage(url);
|
|
138
|
+
} catch (e) {
|
|
139
|
+
console.warn(`[prerender] Could not resolve: ${url} — ${e.message}`);
|
|
140
|
+
}
|
|
141
|
+
const { renderToString } = await import("vue/server-renderer");
|
|
142
|
+
return renderBloxSsgPage({
|
|
143
|
+
url,
|
|
144
|
+
resolvedData,
|
|
145
|
+
renderToString,
|
|
146
|
+
createAppForUrl: buildApp,
|
|
147
|
+
website: ctx.website,
|
|
148
|
+
websiteId: ctx.websiteId,
|
|
149
|
+
collections: ctx.collections
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
return { render };
|
|
153
|
+
}
|
|
47
154
|
exports.buildPageHead = prerender.buildPageHead;
|
|
48
155
|
exports.buildSiteHead = prerender.buildSiteHead;
|
|
49
156
|
exports.fetchCmsPrerenderPaths = prerender.fetchCmsPrerenderPaths;
|
|
@@ -53,11 +160,12 @@ exports.generateRobotsTxt = prerender.generateRobotsTxt;
|
|
|
53
160
|
exports.generateSitemapXml = prerender.generateSitemapXml;
|
|
54
161
|
exports.polyfillBloxSsgGlobals = prerender.polyfillBloxSsgGlobals;
|
|
55
162
|
exports.prerender = prerender.prerender;
|
|
163
|
+
exports.BLOX_COLLECTIONS_WINDOW_KEY = ssg_client.BLOX_COLLECTIONS_WINDOW_KEY;
|
|
164
|
+
exports.BLOX_STATE_WINDOW_KEY = ssg_client.BLOX_STATE_WINDOW_KEY;
|
|
165
|
+
exports.BLOX_WEBSITE_ID_WINDOW_KEY = ssg_client.BLOX_WEBSITE_ID_WINDOW_KEY;
|
|
56
166
|
exports.getCollectionCache = ssg_client.getCollectionCache;
|
|
57
167
|
exports.getEmbeddedWebsiteId = ssg_client.getEmbeddedWebsiteId;
|
|
58
168
|
exports.installBloxStateCache = ssg_client.installBloxStateCache;
|
|
59
169
|
exports.installCollectionCache = ssg_client.installCollectionCache;
|
|
60
|
-
exports.
|
|
61
|
-
exports.BLOX_STATE_WINDOW_KEY = constants.BLOX_STATE_WINDOW_KEY;
|
|
62
|
-
exports.BLOX_WEBSITE_ID_WINDOW_KEY = constants.BLOX_WEBSITE_ID_WINDOW_KEY;
|
|
170
|
+
exports.createBloxSSREntry = createBloxSSREntry;
|
|
63
171
|
exports.renderBloxSsgPage = renderBloxSsgPage;
|
package/dist/ssg/index.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ export { getCollectionCache, getEmbeddedWebsiteId, installCollectionCache } from
|
|
|
13
13
|
* - SEO asset generation (sitemap.xml, robots.txt, _redirects)
|
|
14
14
|
*/
|
|
15
15
|
export { BLOX_COLLECTIONS_WINDOW_KEY, BLOX_STATE_WINDOW_KEY, BLOX_WEBSITE_ID_WINDOW_KEY } from './constants';
|
|
16
|
+
export { createBloxSSREntry } from './createSSREntry';
|
|
17
|
+
export type { BloxSSREntry, CreateBloxSSREntryOptions } from './createSSREntry';
|
|
16
18
|
export { polyfillBloxSsgGlobals } from './polyfill-node';
|
|
17
19
|
export { prerender } from './prerender';
|
|
18
20
|
export type { PrerenderOptions, PrerenderResult, RenderContext, RenderResult } from './prerender';
|
package/dist/ssg/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ssg/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACvE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AACrG;;;;;;;;;;GAUG;AACH,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAC5G,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,kBAAkB,EAAE,MAAM,OAAO,CAAA;AACrH,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ssg/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACvE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AACrG;;;;;;;;;;GAUG;AACH,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAC5G,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,YAAY,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AAC/E,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,kBAAkB,EAAE,MAAM,OAAO,CAAA;AACrH,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA"}
|