@bagelink/blox 1.15.273 → 1.15.277
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-DadFCvv9.js → PreviewApp-CMVaJ7u_.js} +1 -1
- package/dist/{PreviewApp-1tOhVrq-.cjs → PreviewApp-DPabYkJj.cjs} +1 -1
- package/dist/PreviewApp.vue.d.ts.map +1 -1
- package/dist/{PreviewApp.vue_vue_type_style_index_0_lang-CpZt3b1X.cjs → PreviewApp.vue_vue_type_style_index_0_lang-BE0hNpPg.cjs} +7 -1
- package/dist/{PreviewApp.vue_vue_type_style_index_0_lang-DIKjhzD_.js → PreviewApp.vue_vue_type_style_index_0_lang-DNhMmQCj.js} +7 -1
- package/dist/bridge.d.ts +2 -0
- package/dist/bridge.d.ts.map +1 -1
- package/dist/composables/useBloxRuntime.d.ts +5 -0
- package/dist/composables/useBloxRuntime.d.ts.map +1 -0
- package/dist/core.d.ts.map +1 -1
- package/dist/defineBlock.d.ts +5 -0
- package/dist/defineBlock.d.ts.map +1 -1
- package/dist/index.cjs +11 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +39 -30
- package/dist/{prerender-1fZ-6d-3.js → prerender-BCRyYSNg.js} +18 -1
- package/dist/{prerender-52IAxpqw.cjs → prerender-DQ7D6auC.cjs} +17 -0
- package/dist/{routes-DE0OIzJr.js → routes-DUYnmvXF.js} +45 -37
- package/dist/{routes-B4RYeiGa.cjs → routes-DxMOiC2D.cjs} +9 -1
- package/dist/schema.d.ts +2 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/shard-runner-CZnX4qnn.cjs +123 -0
- package/dist/shard-runner-D4gCfCi3.js +101 -0
- package/dist/ssg/cli.cjs +45 -11
- package/dist/ssg/cli.mjs +42 -8
- package/dist/ssg/index.cjs +21 -21
- package/dist/ssg/index.mjs +3 -3
- package/dist/ssg/shard-runner.d.ts +45 -0
- package/dist/ssg/shard-runner.d.ts.map +1 -0
- package/dist/symbols.d.ts +8 -1
- package/dist/symbols.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmsPageView.vue.d.ts","sourceRoot":"","sources":["../src/CmsPageView.vue"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"CmsPageView.vue.d.ts","sourceRoot":"","sources":["../src/CmsPageView.vue"],"names":[],"mappings":";AAwxBA,wBAMG"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const PreviewApp_vue_vue_type_style_index_0_lang = require("./PreviewApp.vue_vue_type_style_index_0_lang-
|
|
3
|
+
const PreviewApp_vue_vue_type_style_index_0_lang = require("./PreviewApp.vue_vue_type_style_index_0_lang-BE0hNpPg.cjs");
|
|
4
4
|
exports.default = PreviewApp_vue_vue_type_style_index_0_lang._sfc_main;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreviewApp.vue.d.ts","sourceRoot":"","sources":["../src/PreviewApp.vue"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"PreviewApp.vue.d.ts","sourceRoot":"","sources":["../src/PreviewApp.vue"],"names":[],"mappings":";AAiTA,wBAMG"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const vue = require("vue");
|
|
3
|
-
const routes = require("./routes-
|
|
3
|
+
const routes = require("./routes-DxMOiC2D.cjs");
|
|
4
4
|
function sendToEditor(msg) {
|
|
5
5
|
window.parent.postMessage(cloneForPostMessage(msg), "*");
|
|
6
6
|
}
|
|
@@ -159,7 +159,12 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
159
159
|
const selectedIndex = vue.ref(null);
|
|
160
160
|
const hoveredIndex = vue.ref(null);
|
|
161
161
|
const globalBlockTypes = vue.ref([]);
|
|
162
|
+
const runtimeLoading = vue.ref(true);
|
|
162
163
|
vue.provide("contexts", contexts);
|
|
164
|
+
vue.provide(routes.BLOX_RUNTIME_KEY, {
|
|
165
|
+
isPreview: vue.ref(true),
|
|
166
|
+
loading: runtimeLoading
|
|
167
|
+
});
|
|
163
168
|
let heightObserver = null;
|
|
164
169
|
function onMessage(event) {
|
|
165
170
|
var _a;
|
|
@@ -169,6 +174,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
169
174
|
blocks.value = ((_a = msg.page.page.content) == null ? void 0 : _a.blocks) ?? [];
|
|
170
175
|
contexts.value = msg.page.contexts ?? {};
|
|
171
176
|
setLocale(msg.locale);
|
|
177
|
+
runtimeLoading.value = false;
|
|
172
178
|
break;
|
|
173
179
|
case "BLOX_SET_LOCALE":
|
|
174
180
|
setLocale(msg.locale);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, inject, ref, h, provide, onMounted, onUnmounted, openBlock, createElementBlock, createVNode, unref, nextTick } from "vue";
|
|
2
|
-
import { e as BLOX_REGISTRY_KEY, u as useLocale } from "./routes-
|
|
2
|
+
import { e as BLOX_REGISTRY_KEY, u as useLocale, f as BLOX_RUNTIME_KEY } from "./routes-DUYnmvXF.js";
|
|
3
3
|
function sendToEditor(msg) {
|
|
4
4
|
window.parent.postMessage(cloneForPostMessage(msg), "*");
|
|
5
5
|
}
|
|
@@ -158,7 +158,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
158
158
|
const selectedIndex = ref(null);
|
|
159
159
|
const hoveredIndex = ref(null);
|
|
160
160
|
const globalBlockTypes = ref([]);
|
|
161
|
+
const runtimeLoading = ref(true);
|
|
161
162
|
provide("contexts", contexts);
|
|
163
|
+
provide(BLOX_RUNTIME_KEY, {
|
|
164
|
+
isPreview: ref(true),
|
|
165
|
+
loading: runtimeLoading
|
|
166
|
+
});
|
|
162
167
|
let heightObserver = null;
|
|
163
168
|
function onMessage(event) {
|
|
164
169
|
var _a;
|
|
@@ -168,6 +173,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
168
173
|
blocks.value = ((_a = msg.page.page.content) == null ? void 0 : _a.blocks) ?? [];
|
|
169
174
|
contexts.value = msg.page.contexts ?? {};
|
|
170
175
|
setLocale(msg.locale);
|
|
176
|
+
runtimeLoading.value = false;
|
|
171
177
|
break;
|
|
172
178
|
case "BLOX_SET_LOCALE":
|
|
173
179
|
setLocale(msg.locale);
|
package/dist/bridge.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ export interface BlockSchemaInfo {
|
|
|
12
12
|
category?: string;
|
|
13
13
|
thumbnail?: string;
|
|
14
14
|
order?: number;
|
|
15
|
+
/** Hide from the add-block picker while preserving existing instances. */
|
|
16
|
+
pickerHidden?: boolean;
|
|
15
17
|
/** True for site-level global blocks (nav/footer). See {@link BlockMeta.global}. */
|
|
16
18
|
global?: boolean;
|
|
17
19
|
}
|
package/dist/bridge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAE1D,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,UAAU,CAAC,EAAE,qBAAqB,CAAA;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oFAAoF;IACpF,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB;AAMD,MAAM,MAAM,aAAa,GACpB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,KAAK,EAAE,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE;AAC7B;;;;GAIG;GACD;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE;AACrD;;;;;GAKG;GACD;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAMnD,MAAM,MAAM,cAAc,GACrB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AACpD;;;;;GAKG;GACD;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAM3C,wBAAgB,YAAY,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAEtD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAEjF"}
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAE1D,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,UAAU,CAAC,EAAE,qBAAqB,CAAA;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,0EAA0E;IAC1E,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,oFAAoF;IACpF,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB;AAMD,MAAM,MAAM,aAAa,GACpB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,KAAK,EAAE,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE;AAC7B;;;;GAIG;GACD;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE;AACrD;;;;;GAKG;GACD;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAMnD,MAAM,MAAM,cAAc,GACrB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AACpD;;;;;GAKG;GACD;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAM3C,wBAAgB,YAAY,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAEtD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAEjF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBloxRuntime.d.ts","sourceRoot":"","sources":["../../src/composables/useBloxRuntime.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc;;;EAO7B"}
|
package/dist/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAa,MAAM,KAAK,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAc,MAAM,WAAW,CAAA;AAkB5D,4GAA4G;AAC5G,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,cAAc,CAAA;AAE5D,MAAM,WAAW,WAAY,SAAQ,eAAe;IACnD,qIAAqI;IACrI,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC1C;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACrD,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gFAAgF;IAChF,SAAS,CAAC,EAAE,eAAe,CAAA;CAC3B;AAED,qBAAa,YAAY;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,UAAU,CAAC,CAAiB;gBAExB,OAAO,CAAC,EAAE,WAAW;IASjC,uEAAuE;IACvE,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAED,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAa,MAAM,KAAK,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAc,MAAM,WAAW,CAAA;AAkB5D,4GAA4G;AAC5G,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,cAAc,CAAA;AAE5D,MAAM,WAAW,WAAY,SAAQ,eAAe;IACnD,qIAAqI;IACrI,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC1C;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACrD,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gFAAgF;IAChF,SAAS,CAAC,EAAE,eAAe,CAAA;CAC3B;AAED,qBAAa,YAAY;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,UAAU,CAAC,CAAiB;gBAExB,OAAO,CAAC,EAAE,WAAW;IASjC,uEAAuE;IACvE,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAED,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI;IAiC3E,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,IAAI;IA8BnE,+EAA+E;IAC/E,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAI9C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAyBpC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI;CAoC9C;AAMD,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,YAAY,CAS9D"}
|
package/dist/defineBlock.d.ts
CHANGED
|
@@ -40,6 +40,11 @@ export interface BlockMeta {
|
|
|
40
40
|
thumbnail?: string;
|
|
41
41
|
/** Sort order in the editor block picker. Lower values appear first. Defaults to 100. */
|
|
42
42
|
order?: number;
|
|
43
|
+
/**
|
|
44
|
+
* Hide this block from the editor picker while keeping it registered so
|
|
45
|
+
* existing page instances continue to render and remain editable.
|
|
46
|
+
*/
|
|
47
|
+
pickerHidden?: boolean;
|
|
43
48
|
/**
|
|
44
49
|
* When true, this block is a *global* (site-level) block: its content is
|
|
45
50
|
* shared across every page and stored on the website (`blox_global_block`),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineBlock.d.ts","sourceRoot":"","sources":["../src/defineBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAErD,yFAAyF;AACzF,MAAM,WAAW,eAAe;IAC/B,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAA;IAClB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,eAAe,GAAG,eAAe,EAAE,CAAA;AAEjF,MAAM,WAAW,SAAS;IACzB,kGAAkG;IAClG,IAAI,EAAE,MAAM,CAAA;IACZ,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAA;IACb,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sFAAsF;IACtF,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,yGAAyG;IACzG,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,qBAAqB,CAAA;IAClC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,kGAAkG;AAClG,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAmBtD"}
|
|
1
|
+
{"version":3,"file":"defineBlock.d.ts","sourceRoot":"","sources":["../src/defineBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAErD,yFAAyF;AACzF,MAAM,WAAW,eAAe;IAC/B,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAA;IAClB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,eAAe,GAAG,eAAe,EAAE,CAAA;AAEjF,MAAM,WAAW,SAAS;IACzB,kGAAkG;IAClG,IAAI,EAAE,MAAM,CAAA;IACZ,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAA;IACb,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sFAAsF;IACtF,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,yGAAyG;IACzG,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,qBAAqB,CAAA;IAClC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,kGAAkG;AAClG,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAmBtD"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const routes = require("./routes-
|
|
4
|
-
const PreviewApp_vue_vue_type_style_index_0_lang = require("./PreviewApp.vue_vue_type_style_index_0_lang-
|
|
3
|
+
const routes = require("./routes-DxMOiC2D.cjs");
|
|
4
|
+
const PreviewApp_vue_vue_type_style_index_0_lang = require("./PreviewApp.vue_vue_type_style_index_0_lang-BE0hNpPg.cjs");
|
|
5
5
|
const vue = require("vue");
|
|
6
6
|
const vueRouter = require("vue-router");
|
|
7
7
|
const pinia = require("pinia");
|
|
@@ -119,6 +119,13 @@ function usePageContext(key) {
|
|
|
119
119
|
return value;
|
|
120
120
|
});
|
|
121
121
|
}
|
|
122
|
+
function useBloxRuntime() {
|
|
123
|
+
const runtime = vue.inject(routes.BLOX_RUNTIME_KEY, null);
|
|
124
|
+
return {
|
|
125
|
+
isPreview: (runtime == null ? void 0 : runtime.isPreview) ?? vue.computed(() => false),
|
|
126
|
+
loading: (runtime == null ? void 0 : runtime.loading) ?? vue.computed(() => false)
|
|
127
|
+
};
|
|
128
|
+
}
|
|
122
129
|
function useContentSeo(item, head) {
|
|
123
130
|
const route = safeRoute();
|
|
124
131
|
const { locale } = routes.useLocale();
|
|
@@ -354,6 +361,7 @@ exports.BLOX_DATA_KEY = routes.BLOX_DATA_KEY;
|
|
|
354
361
|
exports.BLOX_DATA_WINDOW_KEY = routes.BLOX_DATA_WINDOW_KEY;
|
|
355
362
|
exports.BLOX_LAYOUT_KEY = routes.BLOX_LAYOUT_KEY;
|
|
356
363
|
exports.BLOX_LOCALE_STRATEGY_KEY = routes.BLOX_LOCALE_STRATEGY_KEY;
|
|
364
|
+
exports.BLOX_RUNTIME_KEY = routes.BLOX_RUNTIME_KEY;
|
|
357
365
|
exports.BloxInstance = routes.BloxInstance;
|
|
358
366
|
exports.CmsPageView = routes._sfc_main$1;
|
|
359
367
|
exports.ContentDetailView = routes._sfc_main$2;
|
|
@@ -402,6 +410,7 @@ exports.createBloxApp = createBloxApp;
|
|
|
402
410
|
exports.defineBlock = defineBlock;
|
|
403
411
|
exports.injectPlausible = injectPlausible;
|
|
404
412
|
exports.serializeRegistry = serializeRegistry;
|
|
413
|
+
exports.useBloxRuntime = useBloxRuntime;
|
|
405
414
|
exports.useContentSeo = useContentSeo;
|
|
406
415
|
exports.useGlobalBlock = useGlobalBlock;
|
|
407
416
|
exports.useLocaleNav = useLocaleNav;
|
package/dist/index.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export { useLocale } from './composables/useLocale';
|
|
|
15
15
|
export type { Locale } from './composables/useLocale';
|
|
16
16
|
export { useLocaleNav } from './composables/useLocaleNav';
|
|
17
17
|
export { usePageContext } from './composables/usePageContext';
|
|
18
|
+
export { useBloxRuntime } from './composables/useBloxRuntime';
|
|
18
19
|
export { classifyLink, installSmartLinks, isAbsoluteExternal, isSpecialScheme, normalizeLink, normalizeTo, toInternalPath, } from './smartLinks';
|
|
19
20
|
export type { LinkKind } from './smartLinks';
|
|
20
21
|
export { BloxInstance, createBlox } from './core';
|
|
@@ -33,7 +34,7 @@ export { default as PreviewRenderer } from './PreviewRenderer';
|
|
|
33
34
|
export { buildBloxManifest, serializeRegistry } from './manifest';
|
|
34
35
|
export type { BloxManifest, BlockManifestEntry } from './manifest';
|
|
35
36
|
export type { BlockComponent, BlockDefinition, BlockSchema } from './schema';
|
|
36
|
-
export { BLOX_ADMIN_CONFIG_KEY, BLOX_CONFIG_KEY, BLOX_LAYOUT_KEY, BLOX_LOCALE_STRATEGY_KEY } from './symbols';
|
|
37
|
-
export type { BloxAdminConfig, BloxConfig, BloxLayoutConfig } from './symbols';
|
|
37
|
+
export { BLOX_ADMIN_CONFIG_KEY, BLOX_CONFIG_KEY, BLOX_LAYOUT_KEY, BLOX_LOCALE_STRATEGY_KEY, BLOX_RUNTIME_KEY } from './symbols';
|
|
38
|
+
export type { BloxAdminConfig, BloxConfig, BloxLayoutConfig, BloxRuntimeContext } from './symbols';
|
|
38
39
|
export { applyLayoutChrome, isSoloContentPage } from './layout';
|
|
39
40
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { _,
|
|
3
|
-
import { _ as _2, P as P2, s as s2, a } from "./PreviewApp.vue_vue_type_style_index_0_lang-
|
|
1
|
+
import { h as BLOX_LOCALE_STRATEGY_KEY, u as useLocale, n as normalizeLink, f as BLOX_RUNTIME_KEY, j as useSeo, k as getRegistryData, l as getItemBySlug, m as getItemById, o as getContentRoute, p as provideBloxData, d as createBlox, g as generateContentRoutes, q as installContentFallback, i as installLocaleAwareResolve, a as setActiveLocale, r as installSmartLinks, t as consumePendingLocaleSwitch } from "./routes-DUYnmvXF.js";
|
|
2
|
+
import { _, v, w, x, B, y, z, A, C, D, P, E, F, c, b, G, H, I, J, K, L, M, N, O, Q, R, S, T, s, U, V, W, X } from "./routes-DUYnmvXF.js";
|
|
3
|
+
import { _ as _2, P as P2, s as s2, a } from "./PreviewApp.vue_vue_type_style_index_0_lang-DNhMmQCj.js";
|
|
4
4
|
import { defineComponent, resolveComponent, openBlock, createBlock, withCtx, Transition, resolveDynamicComponent, inject, ref, watch, onMounted, onUnmounted, computed, onServerPrefetch, toValue, createApp, h, Suspense, markRaw } from "vue";
|
|
5
5
|
import { useRouter, useRoute } from "vue-router";
|
|
6
6
|
import { createPinia } from "pinia";
|
|
@@ -118,6 +118,13 @@ function usePageContext(key) {
|
|
|
118
118
|
return value;
|
|
119
119
|
});
|
|
120
120
|
}
|
|
121
|
+
function useBloxRuntime() {
|
|
122
|
+
const runtime = inject(BLOX_RUNTIME_KEY, null);
|
|
123
|
+
return {
|
|
124
|
+
isPreview: (runtime == null ? void 0 : runtime.isPreview) ?? computed(() => false),
|
|
125
|
+
loading: (runtime == null ? void 0 : runtime.loading) ?? computed(() => false)
|
|
126
|
+
};
|
|
127
|
+
}
|
|
121
128
|
function useContentSeo(item, head) {
|
|
122
129
|
const route = safeRoute();
|
|
123
130
|
const { locale } = useLocale();
|
|
@@ -348,59 +355,61 @@ function buildBloxManifest(blox) {
|
|
|
348
355
|
}
|
|
349
356
|
export {
|
|
350
357
|
_ as AdminEditBar,
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
358
|
+
v as BLOX_ADMIN_CONFIG_KEY,
|
|
359
|
+
w as BLOX_CONFIG_KEY,
|
|
360
|
+
x as BLOX_DATA_KEY,
|
|
354
361
|
B as BLOX_DATA_WINDOW_KEY,
|
|
355
|
-
|
|
362
|
+
y as BLOX_LAYOUT_KEY,
|
|
356
363
|
BLOX_LOCALE_STRATEGY_KEY,
|
|
357
|
-
|
|
364
|
+
BLOX_RUNTIME_KEY,
|
|
365
|
+
z as BloxInstance,
|
|
358
366
|
_sfc_main as BloxRouterView,
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
367
|
+
A as CmsPageView,
|
|
368
|
+
C as ContentDetailView,
|
|
369
|
+
D as ContentHost,
|
|
362
370
|
P as PageRenderer,
|
|
363
371
|
_2 as PreviewApp,
|
|
364
372
|
P2 as PreviewRenderer,
|
|
365
|
-
|
|
373
|
+
E as applyLayoutChrome,
|
|
366
374
|
buildBloxManifest,
|
|
367
|
-
|
|
375
|
+
F as classifyLink,
|
|
368
376
|
c as collectBloxData,
|
|
369
377
|
b as collectBloxSeo,
|
|
370
|
-
|
|
371
|
-
|
|
378
|
+
G as configureApi,
|
|
379
|
+
H as contentRoutes,
|
|
372
380
|
createBlox,
|
|
373
381
|
createBloxApp,
|
|
374
382
|
defineBlock,
|
|
375
|
-
|
|
383
|
+
I as defineContent,
|
|
376
384
|
generateContentRoutes,
|
|
377
385
|
getContentRoute,
|
|
378
|
-
|
|
386
|
+
J as getContentRouteByCollection,
|
|
379
387
|
getItemById,
|
|
380
388
|
getItemBySlug,
|
|
381
|
-
|
|
382
|
-
|
|
389
|
+
K as getWebsiteId,
|
|
390
|
+
L as getWebsiteIdSync,
|
|
383
391
|
injectPlausible,
|
|
384
392
|
installContentFallback,
|
|
385
393
|
installSmartLinks,
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
394
|
+
M as isAbsoluteExternal,
|
|
395
|
+
N as isSoloContentPage,
|
|
396
|
+
O as isSpecialScheme,
|
|
397
|
+
Q as listItems,
|
|
390
398
|
normalizeLink,
|
|
391
|
-
|
|
399
|
+
R as normalizeTo,
|
|
392
400
|
provideBloxData,
|
|
393
|
-
|
|
394
|
-
|
|
401
|
+
S as provideContentItem,
|
|
402
|
+
T as resolvePath,
|
|
395
403
|
s2 as sendToEditor,
|
|
396
404
|
a as sendToPreview,
|
|
397
405
|
serializeRegistry,
|
|
398
406
|
s as setApiOrigin,
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
407
|
+
U as toInternalPath,
|
|
408
|
+
V as useBloxEdit,
|
|
409
|
+
useBloxRuntime,
|
|
410
|
+
W as useContentItem,
|
|
402
411
|
useContentSeo,
|
|
403
|
-
|
|
412
|
+
X as useData,
|
|
404
413
|
useGlobalBlock,
|
|
405
414
|
useLocale,
|
|
406
415
|
useLocaleNav,
|
|
@@ -111,6 +111,12 @@ function extractCollectionRefs(pages) {
|
|
|
111
111
|
}
|
|
112
112
|
return refs;
|
|
113
113
|
}
|
|
114
|
+
const cmsRoutes = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
115
|
+
__proto__: null,
|
|
116
|
+
expandLocalePaths,
|
|
117
|
+
fetchCmsPrerenderPaths,
|
|
118
|
+
fetchCmsSiteData
|
|
119
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
114
120
|
async function polyfillBloxSsgGlobals(options) {
|
|
115
121
|
const { env } = await import("node:process");
|
|
116
122
|
const pageUrl = (options == null ? void 0 : options.pageUrl) ?? env.BAGELINK_API_URL ?? "https://example.com/";
|
|
@@ -547,6 +553,15 @@ async function mergeLlmParts(options) {
|
|
|
547
553
|
}
|
|
548
554
|
return { pages: pages.length };
|
|
549
555
|
}
|
|
556
|
+
const llmArtifacts = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
557
|
+
__proto__: null,
|
|
558
|
+
buildJsonLd,
|
|
559
|
+
extractPageText,
|
|
560
|
+
generateLlmsFullTxt,
|
|
561
|
+
generateLlmsTxt,
|
|
562
|
+
isPathExcluded,
|
|
563
|
+
mergeLlmParts
|
|
564
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
550
565
|
async function prerender({
|
|
551
566
|
root = process.cwd(),
|
|
552
567
|
clientOutDir = "dist/client",
|
|
@@ -887,5 +902,7 @@ export {
|
|
|
887
902
|
generateSitemapXml as m,
|
|
888
903
|
getSiteIconFlags as n,
|
|
889
904
|
mergeLlmParts as o,
|
|
890
|
-
polyfillBloxSsgGlobals as p
|
|
905
|
+
polyfillBloxSsgGlobals as p,
|
|
906
|
+
cmsRoutes as q,
|
|
907
|
+
llmArtifacts as r
|
|
891
908
|
};
|
|
@@ -134,6 +134,12 @@ function extractCollectionRefs(pages) {
|
|
|
134
134
|
}
|
|
135
135
|
return refs;
|
|
136
136
|
}
|
|
137
|
+
const cmsRoutes = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
138
|
+
__proto__: null,
|
|
139
|
+
expandLocalePaths,
|
|
140
|
+
fetchCmsPrerenderPaths,
|
|
141
|
+
fetchCmsSiteData
|
|
142
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
137
143
|
async function polyfillBloxSsgGlobals(options) {
|
|
138
144
|
const { env } = await import("node:process");
|
|
139
145
|
const pageUrl = (options == null ? void 0 : options.pageUrl) ?? env.BAGELINK_API_URL ?? "https://example.com/";
|
|
@@ -570,6 +576,15 @@ async function mergeLlmParts(options) {
|
|
|
570
576
|
}
|
|
571
577
|
return { pages: pages.length };
|
|
572
578
|
}
|
|
579
|
+
const llmArtifacts = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
580
|
+
__proto__: null,
|
|
581
|
+
buildJsonLd,
|
|
582
|
+
extractPageText,
|
|
583
|
+
generateLlmsFullTxt,
|
|
584
|
+
generateLlmsTxt,
|
|
585
|
+
isPathExcluded,
|
|
586
|
+
mergeLlmParts
|
|
587
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
573
588
|
async function prerender({
|
|
574
589
|
root = process.cwd(),
|
|
575
590
|
clientOutDir = "dist/client",
|
|
@@ -897,6 +912,7 @@ function discoverInternalLinks(html) {
|
|
|
897
912
|
exports.buildJsonLd = buildJsonLd;
|
|
898
913
|
exports.buildPageHead = buildPageHead;
|
|
899
914
|
exports.buildSiteHead = buildSiteHead;
|
|
915
|
+
exports.cmsRoutes = cmsRoutes;
|
|
900
916
|
exports.extractPageText = extractPageText;
|
|
901
917
|
exports.fetchCmsPrerenderPaths = fetchCmsPrerenderPaths;
|
|
902
918
|
exports.fetchCmsSiteData = fetchCmsSiteData;
|
|
@@ -906,6 +922,7 @@ exports.generateNetlifyRedirects = generateNetlifyRedirects;
|
|
|
906
922
|
exports.generateRobotsTxt = generateRobotsTxt;
|
|
907
923
|
exports.generateSitemapXml = generateSitemapXml;
|
|
908
924
|
exports.getSiteIconFlags = getSiteIconFlags;
|
|
925
|
+
exports.llmArtifacts = llmArtifacts;
|
|
909
926
|
exports.mergeLlmParts = mergeLlmParts;
|
|
910
927
|
exports.polyfillBloxSsgGlobals = polyfillBloxSsgGlobals;
|
|
911
928
|
exports.prerender = prerender;
|
|
@@ -85,6 +85,7 @@ async function getItemById(collection, id, locale2) {
|
|
|
85
85
|
const BLOX_REGISTRY_KEY = Symbol("blox:registry");
|
|
86
86
|
const BLOX_CONFIG_KEY = Symbol("blox:config");
|
|
87
87
|
const BLOX_LOCALE_STRATEGY_KEY = Symbol("blox:locale-strategy");
|
|
88
|
+
const BLOX_RUNTIME_KEY = Symbol("blox:runtime");
|
|
88
89
|
const BLOX_ADMIN_CONFIG_KEY = Symbol("blox:admin-config");
|
|
89
90
|
const BLOX_LAYOUT_KEY = Symbol("blox:layout");
|
|
90
91
|
const STORAGE_KEY = "blox:edit";
|
|
@@ -317,6 +318,10 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
317
318
|
const error = ref(null);
|
|
318
319
|
const initialLoading = ref(true);
|
|
319
320
|
const navigating = ref(false);
|
|
321
|
+
provide(BLOX_RUNTIME_KEY, {
|
|
322
|
+
isPreview: ref(false),
|
|
323
|
+
loading: computed(() => initialLoading.value || navigating.value)
|
|
324
|
+
});
|
|
320
325
|
function navigableAlternates(alternates, resolvedSlug) {
|
|
321
326
|
const keys = Object.keys(alternates ?? {});
|
|
322
327
|
if (!keys.length) return { [locale2.value]: resolvedSlug };
|
|
@@ -903,6 +908,7 @@ class BloxInstance {
|
|
|
903
908
|
category: meta.category,
|
|
904
909
|
thumbnail: meta.thumbnail,
|
|
905
910
|
order: meta.order,
|
|
911
|
+
pickerHidden: meta.pickerHidden,
|
|
906
912
|
global: meta.global
|
|
907
913
|
}
|
|
908
914
|
};
|
|
@@ -932,6 +938,7 @@ class BloxInstance {
|
|
|
932
938
|
category: meta.category,
|
|
933
939
|
thumbnail: meta.thumbnail,
|
|
934
940
|
order: meta.order,
|
|
941
|
+
pickerHidden: meta.pickerHidden,
|
|
935
942
|
global: meta.global
|
|
936
943
|
}
|
|
937
944
|
};
|
|
@@ -957,7 +964,7 @@ class BloxInstance {
|
|
|
957
964
|
}
|
|
958
965
|
router.addRoute({
|
|
959
966
|
path: "/_blox_preview",
|
|
960
|
-
component: () => import("./PreviewApp-
|
|
967
|
+
component: () => import("./PreviewApp-CMVaJ7u_.js"),
|
|
961
968
|
beforeEnter: () => window.parent !== window ? true : "/"
|
|
962
969
|
});
|
|
963
970
|
router.addRoute({ path: "/:pathMatch(.*)*", component: _sfc_main$2 });
|
|
@@ -1231,54 +1238,55 @@ function installContentFallback(router, supportedLocales, defaultLocale) {
|
|
|
1231
1238
|
});
|
|
1232
1239
|
}
|
|
1233
1240
|
export {
|
|
1234
|
-
_sfc_main$
|
|
1241
|
+
_sfc_main$2 as A,
|
|
1235
1242
|
BLOX_DATA_WINDOW_KEY as B,
|
|
1236
|
-
_sfc_main as C,
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1243
|
+
_sfc_main$1 as C,
|
|
1244
|
+
_sfc_main as D,
|
|
1245
|
+
applyLayoutChrome as E,
|
|
1246
|
+
classifyLink as F,
|
|
1247
|
+
configureApi as G,
|
|
1248
|
+
contentRoutes as H,
|
|
1249
|
+
defineContent as I,
|
|
1250
|
+
getContentRouteByCollection as J,
|
|
1251
|
+
getWebsiteId as K,
|
|
1252
|
+
getWebsiteIdSync as L,
|
|
1253
|
+
isAbsoluteExternal as M,
|
|
1254
|
+
isSoloContentPage as N,
|
|
1255
|
+
isSpecialScheme as O,
|
|
1249
1256
|
PageRenderer as P,
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
+
listItems as Q,
|
|
1258
|
+
normalizeTo as R,
|
|
1259
|
+
provideContentItem as S,
|
|
1260
|
+
resolvePath as T,
|
|
1261
|
+
toInternalPath as U,
|
|
1262
|
+
useBloxEdit as V,
|
|
1263
|
+
useContentItem as W,
|
|
1264
|
+
useData as X,
|
|
1257
1265
|
_sfc_main$3 as _,
|
|
1258
1266
|
setActiveLocale as a,
|
|
1259
1267
|
collectBloxSeo as b,
|
|
1260
1268
|
collectBloxData as c,
|
|
1261
1269
|
createBlox as d,
|
|
1262
1270
|
BLOX_REGISTRY_KEY as e,
|
|
1263
|
-
|
|
1271
|
+
BLOX_RUNTIME_KEY as f,
|
|
1264
1272
|
generateContentRoutes as g,
|
|
1265
|
-
|
|
1273
|
+
BLOX_LOCALE_STRATEGY_KEY as h,
|
|
1266
1274
|
installLocaleAwareResolve as i,
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1275
|
+
useSeo as j,
|
|
1276
|
+
getRegistryData as k,
|
|
1277
|
+
getItemBySlug as l,
|
|
1278
|
+
getItemById as m,
|
|
1271
1279
|
normalizeLink as n,
|
|
1272
|
-
|
|
1280
|
+
getContentRoute as o,
|
|
1273
1281
|
provideBloxData as p,
|
|
1274
|
-
|
|
1275
|
-
|
|
1282
|
+
installContentFallback as q,
|
|
1283
|
+
installSmartLinks as r,
|
|
1276
1284
|
setApiOrigin as s,
|
|
1277
|
-
|
|
1285
|
+
consumePendingLocaleSwitch as t,
|
|
1278
1286
|
useLocale as u,
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1287
|
+
BLOX_ADMIN_CONFIG_KEY as v,
|
|
1288
|
+
BLOX_CONFIG_KEY as w,
|
|
1289
|
+
BLOX_DATA_KEY as x,
|
|
1290
|
+
BLOX_LAYOUT_KEY as y,
|
|
1291
|
+
BloxInstance as z
|
|
1284
1292
|
};
|
|
@@ -86,6 +86,7 @@ async function getItemById(collection, id, locale2) {
|
|
|
86
86
|
const BLOX_REGISTRY_KEY = Symbol("blox:registry");
|
|
87
87
|
const BLOX_CONFIG_KEY = Symbol("blox:config");
|
|
88
88
|
const BLOX_LOCALE_STRATEGY_KEY = Symbol("blox:locale-strategy");
|
|
89
|
+
const BLOX_RUNTIME_KEY = Symbol("blox:runtime");
|
|
89
90
|
const BLOX_ADMIN_CONFIG_KEY = Symbol("blox:admin-config");
|
|
90
91
|
const BLOX_LAYOUT_KEY = Symbol("blox:layout");
|
|
91
92
|
const STORAGE_KEY = "blox:edit";
|
|
@@ -318,6 +319,10 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
|
|
|
318
319
|
const error = vue.ref(null);
|
|
319
320
|
const initialLoading = vue.ref(true);
|
|
320
321
|
const navigating = vue.ref(false);
|
|
322
|
+
vue.provide(BLOX_RUNTIME_KEY, {
|
|
323
|
+
isPreview: vue.ref(false),
|
|
324
|
+
loading: vue.computed(() => initialLoading.value || navigating.value)
|
|
325
|
+
});
|
|
321
326
|
function navigableAlternates(alternates, resolvedSlug) {
|
|
322
327
|
const keys = Object.keys(alternates ?? {});
|
|
323
328
|
if (!keys.length) return { [locale2.value]: resolvedSlug };
|
|
@@ -904,6 +909,7 @@ class BloxInstance {
|
|
|
904
909
|
category: meta.category,
|
|
905
910
|
thumbnail: meta.thumbnail,
|
|
906
911
|
order: meta.order,
|
|
912
|
+
pickerHidden: meta.pickerHidden,
|
|
907
913
|
global: meta.global
|
|
908
914
|
}
|
|
909
915
|
};
|
|
@@ -933,6 +939,7 @@ class BloxInstance {
|
|
|
933
939
|
category: meta.category,
|
|
934
940
|
thumbnail: meta.thumbnail,
|
|
935
941
|
order: meta.order,
|
|
942
|
+
pickerHidden: meta.pickerHidden,
|
|
936
943
|
global: meta.global
|
|
937
944
|
}
|
|
938
945
|
};
|
|
@@ -958,7 +965,7 @@ class BloxInstance {
|
|
|
958
965
|
}
|
|
959
966
|
router.addRoute({
|
|
960
967
|
path: "/_blox_preview",
|
|
961
|
-
component: () => Promise.resolve().then(() => require("./PreviewApp-
|
|
968
|
+
component: () => Promise.resolve().then(() => require("./PreviewApp-DPabYkJj.cjs")),
|
|
962
969
|
beforeEnter: () => window.parent !== window ? true : "/"
|
|
963
970
|
});
|
|
964
971
|
router.addRoute({ path: "/:pathMatch(.*)*", component: _sfc_main$2 });
|
|
@@ -1238,6 +1245,7 @@ exports.BLOX_DATA_WINDOW_KEY = BLOX_DATA_WINDOW_KEY;
|
|
|
1238
1245
|
exports.BLOX_LAYOUT_KEY = BLOX_LAYOUT_KEY;
|
|
1239
1246
|
exports.BLOX_LOCALE_STRATEGY_KEY = BLOX_LOCALE_STRATEGY_KEY;
|
|
1240
1247
|
exports.BLOX_REGISTRY_KEY = BLOX_REGISTRY_KEY;
|
|
1248
|
+
exports.BLOX_RUNTIME_KEY = BLOX_RUNTIME_KEY;
|
|
1241
1249
|
exports.BloxInstance = BloxInstance;
|
|
1242
1250
|
exports.PageRenderer = PageRenderer;
|
|
1243
1251
|
exports._sfc_main = _sfc_main$3;
|
package/dist/schema.d.ts
CHANGED
|
@@ -22,6 +22,8 @@ export interface BlockSchema {
|
|
|
22
22
|
thumbnail?: string;
|
|
23
23
|
/** Sort order in the editor block picker. Lower values appear first. Defaults to 100. */
|
|
24
24
|
order?: number;
|
|
25
|
+
/** Hide from the add-block picker while preserving existing instances. */
|
|
26
|
+
pickerHidden?: boolean;
|
|
25
27
|
/** True for site-level global blocks (nav/footer). See {@link BlockMeta.global}. */
|
|
26
28
|
global?: boolean;
|
|
27
29
|
}
|
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,qBAAqB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAErE,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,6DAA6D;IAC7D,UAAU,CAAC,EAAE,qBAAqB,CAAA;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oFAAoF;IACpF,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB;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"}
|
|
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,qBAAqB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAErE,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,6DAA6D;IAC7D,UAAU,CAAC,EAAE,qBAAqB,CAAA;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,0EAA0E;IAC1E,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,oFAAoF;IACpF,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB;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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
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
|
+
));
|
|
24
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
25
|
+
const node_child_process = require("node:child_process");
|
|
26
|
+
const os = require("node:os");
|
|
27
|
+
const path = require("node:path");
|
|
28
|
+
const process = require("node:process");
|
|
29
|
+
const AUTO_SHARD_CAP = Number(process.env.BLOX_SSG_SHARD_CAP) || 6;
|
|
30
|
+
const PREFETCH_BUDGET = Number(process.env.BLOX_SSG_PREFETCH_BUDGET) || 24;
|
|
31
|
+
function resolveShardCount(shards) {
|
|
32
|
+
if (shards === "auto") {
|
|
33
|
+
const cores = os.cpus().length || 4;
|
|
34
|
+
return Math.max(1, Math.min(cores, AUTO_SHARD_CAP));
|
|
35
|
+
}
|
|
36
|
+
return Math.max(1, Math.floor(shards));
|
|
37
|
+
}
|
|
38
|
+
async function enumerateRoutes(cmd) {
|
|
39
|
+
return new Promise((resolve, reject) => {
|
|
40
|
+
const child = node_child_process.spawn(cmd, { shell: true, stdio: ["ignore", "pipe", "inherit"] });
|
|
41
|
+
let out = "";
|
|
42
|
+
child.stdout.on("data", (d) => {
|
|
43
|
+
out += d.toString();
|
|
44
|
+
});
|
|
45
|
+
child.on("error", reject);
|
|
46
|
+
child.on(
|
|
47
|
+
"close",
|
|
48
|
+
(code) => code === 0 ? resolve(out.split(/\s+/).filter(Boolean)) : reject(new Error(`routes-cmd exited ${code}`))
|
|
49
|
+
);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
function runShard(index, total, paths, opts, llmPartsDir) {
|
|
53
|
+
return new Promise((resolve) => {
|
|
54
|
+
const args = [
|
|
55
|
+
`--mode=${opts.mode}`,
|
|
56
|
+
`--shard=${index}/${total}`,
|
|
57
|
+
"--no-crawl",
|
|
58
|
+
`--llm-parts=${path.join(llmPartsDir, `part.${index}.json`)}`,
|
|
59
|
+
...opts.passthroughArgs,
|
|
60
|
+
...paths
|
|
61
|
+
];
|
|
62
|
+
const child = node_child_process.spawn("blox-ssg", args, {
|
|
63
|
+
stdio: ["ignore", "inherit", "inherit"],
|
|
64
|
+
env: {
|
|
65
|
+
...process.env,
|
|
66
|
+
// Divide the global prefetch budget across shards so N processes
|
|
67
|
+
// don't collectively overwhelm the API.
|
|
68
|
+
BLOX_SSG_PREFETCH: String(Math.max(2, Math.floor(PREFETCH_BUDGET / total)))
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
child.on("close", (code) => resolve(code ?? 0));
|
|
72
|
+
child.on("error", (err) => {
|
|
73
|
+
console.error(`[blox-ssg] shard ${index} failed to spawn: ${err.message}`);
|
|
74
|
+
resolve(1);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
async function runSharded(opts) {
|
|
79
|
+
const total = resolveShardCount(opts.shards);
|
|
80
|
+
const paths = [...opts.extraPaths];
|
|
81
|
+
if (opts.routesCmd) {
|
|
82
|
+
const enumerated = await enumerateRoutes(opts.routesCmd);
|
|
83
|
+
for (const p of enumerated) if (!paths.includes(p)) paths.push(p);
|
|
84
|
+
console.log(`[blox-ssg] routes-cmd enumerated ${enumerated.length} route(s)`);
|
|
85
|
+
}
|
|
86
|
+
console.log(`[blox-ssg] sharded run · ${total} shard(s) · ${paths.length} extra path(s)`);
|
|
87
|
+
const llmPartsDir = path.resolve("dist", ".llm-parts");
|
|
88
|
+
await (await import("node:fs/promises")).mkdir(llmPartsDir, { recursive: true }).catch(() => {
|
|
89
|
+
});
|
|
90
|
+
const start = Date.now();
|
|
91
|
+
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)));
|
|
92
|
+
const failed = codes.findIndex((c) => c !== 0);
|
|
93
|
+
if (failed !== -1) {
|
|
94
|
+
console.error(`[blox-ssg] shard ${failed} exited with code ${codes[failed]}`);
|
|
95
|
+
return codes[failed];
|
|
96
|
+
}
|
|
97
|
+
if (process.env.BLOX_SSG_LLM !== "0") {
|
|
98
|
+
try {
|
|
99
|
+
const [{ mergeLlmParts }, { fetchCmsSiteData }] = await Promise.all([
|
|
100
|
+
Promise.resolve().then(() => require("./prerender-DQ7D6auC.cjs")).then((n) => n.llmArtifacts),
|
|
101
|
+
Promise.resolve().then(() => require("./prerender-DQ7D6auC.cjs")).then((n) => n.cmsRoutes)
|
|
102
|
+
]);
|
|
103
|
+
let website = null;
|
|
104
|
+
try {
|
|
105
|
+
website = (await fetchCmsSiteData(opts.apiBase, opts.websiteName)).website;
|
|
106
|
+
} catch {
|
|
107
|
+
}
|
|
108
|
+
const partFiles = Array.from({ length: total }, (_, i) => path.join(llmPartsDir, `part.${i}.json`));
|
|
109
|
+
const { pages } = await mergeLlmParts({
|
|
110
|
+
partFiles,
|
|
111
|
+
outDir: path.resolve("dist"),
|
|
112
|
+
website,
|
|
113
|
+
config: { fullText: process.env.BLOX_SSG_LLM_FULL !== "0" }
|
|
114
|
+
});
|
|
115
|
+
console.log(`[blox-ssg] merged llms.txt (${pages} pages)`);
|
|
116
|
+
} catch (e) {
|
|
117
|
+
console.warn(`[blox-ssg] llms merge skipped: ${e.message}`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
console.log(`[blox-ssg] sharded run done in ${((Date.now() - start) / 1e3).toFixed(1)}s`);
|
|
121
|
+
return 0;
|
|
122
|
+
}
|
|
123
|
+
exports.runSharded = runSharded;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import os from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import process from "node:process";
|
|
5
|
+
const AUTO_SHARD_CAP = Number(process.env.BLOX_SSG_SHARD_CAP) || 6;
|
|
6
|
+
const PREFETCH_BUDGET = Number(process.env.BLOX_SSG_PREFETCH_BUDGET) || 24;
|
|
7
|
+
function resolveShardCount(shards) {
|
|
8
|
+
if (shards === "auto") {
|
|
9
|
+
const cores = os.cpus().length || 4;
|
|
10
|
+
return Math.max(1, Math.min(cores, AUTO_SHARD_CAP));
|
|
11
|
+
}
|
|
12
|
+
return Math.max(1, Math.floor(shards));
|
|
13
|
+
}
|
|
14
|
+
async function enumerateRoutes(cmd) {
|
|
15
|
+
return new Promise((resolve, reject) => {
|
|
16
|
+
const child = spawn(cmd, { shell: true, stdio: ["ignore", "pipe", "inherit"] });
|
|
17
|
+
let out = "";
|
|
18
|
+
child.stdout.on("data", (d) => {
|
|
19
|
+
out += d.toString();
|
|
20
|
+
});
|
|
21
|
+
child.on("error", reject);
|
|
22
|
+
child.on(
|
|
23
|
+
"close",
|
|
24
|
+
(code) => code === 0 ? resolve(out.split(/\s+/).filter(Boolean)) : reject(new Error(`routes-cmd exited ${code}`))
|
|
25
|
+
);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
function runShard(index, total, paths, opts, llmPartsDir) {
|
|
29
|
+
return new Promise((resolve) => {
|
|
30
|
+
const args = [
|
|
31
|
+
`--mode=${opts.mode}`,
|
|
32
|
+
`--shard=${index}/${total}`,
|
|
33
|
+
"--no-crawl",
|
|
34
|
+
`--llm-parts=${path.join(llmPartsDir, `part.${index}.json`)}`,
|
|
35
|
+
...opts.passthroughArgs,
|
|
36
|
+
...paths
|
|
37
|
+
];
|
|
38
|
+
const child = spawn("blox-ssg", args, {
|
|
39
|
+
stdio: ["ignore", "inherit", "inherit"],
|
|
40
|
+
env: {
|
|
41
|
+
...process.env,
|
|
42
|
+
// Divide the global prefetch budget across shards so N processes
|
|
43
|
+
// don't collectively overwhelm the API.
|
|
44
|
+
BLOX_SSG_PREFETCH: String(Math.max(2, Math.floor(PREFETCH_BUDGET / total)))
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
child.on("close", (code) => resolve(code ?? 0));
|
|
48
|
+
child.on("error", (err) => {
|
|
49
|
+
console.error(`[blox-ssg] shard ${index} failed to spawn: ${err.message}`);
|
|
50
|
+
resolve(1);
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
async function runSharded(opts) {
|
|
55
|
+
const total = resolveShardCount(opts.shards);
|
|
56
|
+
const paths = [...opts.extraPaths];
|
|
57
|
+
if (opts.routesCmd) {
|
|
58
|
+
const enumerated = await enumerateRoutes(opts.routesCmd);
|
|
59
|
+
for (const p of enumerated) if (!paths.includes(p)) paths.push(p);
|
|
60
|
+
console.log(`[blox-ssg] routes-cmd enumerated ${enumerated.length} route(s)`);
|
|
61
|
+
}
|
|
62
|
+
console.log(`[blox-ssg] sharded run · ${total} shard(s) · ${paths.length} extra path(s)`);
|
|
63
|
+
const llmPartsDir = path.resolve("dist", ".llm-parts");
|
|
64
|
+
await (await import("node:fs/promises")).mkdir(llmPartsDir, { recursive: true }).catch(() => {
|
|
65
|
+
});
|
|
66
|
+
const start = Date.now();
|
|
67
|
+
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)));
|
|
68
|
+
const failed = codes.findIndex((c) => c !== 0);
|
|
69
|
+
if (failed !== -1) {
|
|
70
|
+
console.error(`[blox-ssg] shard ${failed} exited with code ${codes[failed]}`);
|
|
71
|
+
return codes[failed];
|
|
72
|
+
}
|
|
73
|
+
if (process.env.BLOX_SSG_LLM !== "0") {
|
|
74
|
+
try {
|
|
75
|
+
const [{ mergeLlmParts }, { fetchCmsSiteData }] = await Promise.all([
|
|
76
|
+
import("./prerender-BCRyYSNg.js").then((n) => n.r),
|
|
77
|
+
import("./prerender-BCRyYSNg.js").then((n) => n.q)
|
|
78
|
+
]);
|
|
79
|
+
let website = null;
|
|
80
|
+
try {
|
|
81
|
+
website = (await fetchCmsSiteData(opts.apiBase, opts.websiteName)).website;
|
|
82
|
+
} catch {
|
|
83
|
+
}
|
|
84
|
+
const partFiles = Array.from({ length: total }, (_, i) => path.join(llmPartsDir, `part.${i}.json`));
|
|
85
|
+
const { pages } = await mergeLlmParts({
|
|
86
|
+
partFiles,
|
|
87
|
+
outDir: path.resolve("dist"),
|
|
88
|
+
website,
|
|
89
|
+
config: { fullText: process.env.BLOX_SSG_LLM_FULL !== "0" }
|
|
90
|
+
});
|
|
91
|
+
console.log(`[blox-ssg] merged llms.txt (${pages} pages)`);
|
|
92
|
+
} catch (e) {
|
|
93
|
+
console.warn(`[blox-ssg] llms merge skipped: ${e.message}`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
console.log(`[blox-ssg] sharded run done in ${((Date.now() - start) / 1e3).toFixed(1)}s`);
|
|
97
|
+
return 0;
|
|
98
|
+
}
|
|
99
|
+
export {
|
|
100
|
+
runSharded
|
|
101
|
+
};
|
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
|
|
4
|
+
const cmsRoutes = require("../prerender-DQ7D6auC.cjs");
|
|
5
5
|
function installFetchTimeout() {
|
|
6
6
|
const ms = Number(process.env.BLOX_SSG_FETCH_TIMEOUT_MS) || 2e4;
|
|
7
7
|
const original = globalThis.fetch;
|
|
@@ -48,12 +48,21 @@ async function main() {
|
|
|
48
48
|
let shardIndex = 0;
|
|
49
49
|
let shardTotal = 1;
|
|
50
50
|
let llmPartsFile = "";
|
|
51
|
+
let shardsOpt = null;
|
|
52
|
+
let routesCmd = "";
|
|
53
|
+
const passthroughArgs = [];
|
|
51
54
|
const excludePaths = ["/_blox_preview"];
|
|
52
55
|
for (const a of argv) {
|
|
53
56
|
if (a === "--crawl") {
|
|
54
57
|
crawl = true;
|
|
58
|
+
passthroughArgs.push(a);
|
|
55
59
|
} else if (a === "--no-crawl") {
|
|
56
60
|
crawl = false;
|
|
61
|
+
} else if (a.startsWith("--shards=")) {
|
|
62
|
+
const v = a.slice("--shards=".length);
|
|
63
|
+
shardsOpt = v === "auto" ? "auto" : Number.isInteger(Number(v)) ? Number(v) : null;
|
|
64
|
+
} else if (a.startsWith("--routes-cmd=")) {
|
|
65
|
+
routesCmd = a.slice("--routes-cmd=".length);
|
|
57
66
|
} else if (a.startsWith("--shard=")) {
|
|
58
67
|
const [i, n] = a.slice("--shard=".length).split("/").map(Number);
|
|
59
68
|
if (Number.isInteger(i) && Number.isInteger(n) && n > 0 && i >= 0 && i < n) {
|
|
@@ -68,29 +77,54 @@ Usage:
|
|
|
68
77
|
blox-ssg [options] [extra-paths...]
|
|
69
78
|
|
|
70
79
|
Options:
|
|
71
|
-
--mode=<env>
|
|
72
|
-
--crawl
|
|
73
|
-
--no-crawl
|
|
74
|
-
--exclude=<path>
|
|
75
|
-
--
|
|
80
|
+
--mode=<env> Environment from bgl.config.ts (default: production)
|
|
81
|
+
--crawl Discover internal links from rendered HTML
|
|
82
|
+
--no-crawl Disable crawling (default)
|
|
83
|
+
--exclude=<path> Exclude path prefix from rendering
|
|
84
|
+
--shards=<n|auto> Render in N parallel child processes (auto = min(cores, cap)).
|
|
85
|
+
Avoids the single-process happy-dom leak on large sites and
|
|
86
|
+
parallelizes CPU-bound SSR. Merges each shard's llms parts.
|
|
87
|
+
--shard=<i/n> (internal) Render only this shard's slice — set by --shards.
|
|
88
|
+
--routes-cmd=<cmd> Shell command whose stdout (whitespace-separated) is the
|
|
89
|
+
route list. For router-driven sites with no CMS pages.
|
|
90
|
+
--help, -h Show this help
|
|
76
91
|
|
|
77
92
|
Environment:
|
|
78
|
-
BAGELINK_API_URL
|
|
79
|
-
WEBSITE_NAME
|
|
93
|
+
BAGELINK_API_URL Override API base URL
|
|
94
|
+
WEBSITE_NAME Override CMS website name
|
|
95
|
+
BLOX_SSG_SHARD_CAP Cap for --shards=auto (default 6)
|
|
96
|
+
BLOX_SSG_PREFETCH_BUDGET Global /resolve-path prefetch budget across shards (24)
|
|
80
97
|
`);
|
|
81
98
|
process.exit(0);
|
|
82
99
|
} else if (a.startsWith("--mode=")) {
|
|
83
100
|
mode = a.slice("--mode=".length);
|
|
84
101
|
} else if (a.startsWith("--exclude=")) {
|
|
85
102
|
excludePaths.push(a.slice("--exclude=".length));
|
|
103
|
+
passthroughArgs.push(a);
|
|
86
104
|
} else if (a.startsWith("--llm-parts=")) {
|
|
87
105
|
llmPartsFile = a.slice("--llm-parts=".length);
|
|
88
106
|
} else {
|
|
89
107
|
extraPaths.push(a);
|
|
90
108
|
}
|
|
91
109
|
}
|
|
110
|
+
if (shardsOpt !== null || routesCmd) {
|
|
111
|
+
const { apiBase: apiBase2, websiteName: configWebsiteName2 } = await resolveApiBase(mode);
|
|
112
|
+
const websiteName2 = process.env.WEBSITE_NAME ?? configWebsiteName2 ?? "default";
|
|
113
|
+
const { runSharded } = await Promise.resolve().then(() => require("../shard-runner-CZnX4qnn.cjs"));
|
|
114
|
+
const code = await runSharded({
|
|
115
|
+
shards: shardsOpt ?? "auto",
|
|
116
|
+
mode,
|
|
117
|
+
apiBase: apiBase2,
|
|
118
|
+
websiteName: websiteName2,
|
|
119
|
+
extraPaths,
|
|
120
|
+
passthroughArgs,
|
|
121
|
+
routesCmd: routesCmd || void 0
|
|
122
|
+
});
|
|
123
|
+
process.exitCode = code;
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
92
126
|
const { apiBase, websiteName: configWebsiteName } = await resolveApiBase(mode);
|
|
93
|
-
await
|
|
127
|
+
await cmsRoutes.polyfillBloxSsgGlobals({ pageUrl: apiBase });
|
|
94
128
|
const websiteName = process.env.WEBSITE_NAME ?? configWebsiteName ?? "default";
|
|
95
129
|
console.log(`Fetching routes from ${apiBase} (mode: ${mode}, site: ${websiteName})…`);
|
|
96
130
|
let paths = [];
|
|
@@ -99,7 +133,7 @@ Environment:
|
|
|
99
133
|
let redirects = [];
|
|
100
134
|
const collections = {};
|
|
101
135
|
try {
|
|
102
|
-
const siteData = await
|
|
136
|
+
const siteData = await cmsRoutes.fetchCmsSiteData(apiBase, websiteName);
|
|
103
137
|
paths = siteData.paths;
|
|
104
138
|
website = siteData.website;
|
|
105
139
|
websiteId = siteData.websiteId;
|
|
@@ -148,7 +182,7 @@ Environment:
|
|
|
148
182
|
}
|
|
149
183
|
const startTime = Date.now();
|
|
150
184
|
try {
|
|
151
|
-
const result = await
|
|
185
|
+
const result = await cmsRoutes.prerender({
|
|
152
186
|
root: process.cwd(),
|
|
153
187
|
clientOutDir: "dist",
|
|
154
188
|
serverEntry: "dist/server/main.server.js",
|
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, f as fetchCmsSiteData, a as prerender } from "../prerender-
|
|
3
|
+
import { p as polyfillBloxSsgGlobals, f as fetchCmsSiteData, a as prerender } from "../prerender-BCRyYSNg.js";
|
|
4
4
|
function installFetchTimeout() {
|
|
5
5
|
const ms = Number(process.env.BLOX_SSG_FETCH_TIMEOUT_MS) || 2e4;
|
|
6
6
|
const original = globalThis.fetch;
|
|
@@ -47,12 +47,21 @@ async function main() {
|
|
|
47
47
|
let shardIndex = 0;
|
|
48
48
|
let shardTotal = 1;
|
|
49
49
|
let llmPartsFile = "";
|
|
50
|
+
let shardsOpt = null;
|
|
51
|
+
let routesCmd = "";
|
|
52
|
+
const passthroughArgs = [];
|
|
50
53
|
const excludePaths = ["/_blox_preview"];
|
|
51
54
|
for (const a of argv) {
|
|
52
55
|
if (a === "--crawl") {
|
|
53
56
|
crawl = true;
|
|
57
|
+
passthroughArgs.push(a);
|
|
54
58
|
} else if (a === "--no-crawl") {
|
|
55
59
|
crawl = false;
|
|
60
|
+
} else if (a.startsWith("--shards=")) {
|
|
61
|
+
const v = a.slice("--shards=".length);
|
|
62
|
+
shardsOpt = v === "auto" ? "auto" : Number.isInteger(Number(v)) ? Number(v) : null;
|
|
63
|
+
} else if (a.startsWith("--routes-cmd=")) {
|
|
64
|
+
routesCmd = a.slice("--routes-cmd=".length);
|
|
56
65
|
} else if (a.startsWith("--shard=")) {
|
|
57
66
|
const [i, n] = a.slice("--shard=".length).split("/").map(Number);
|
|
58
67
|
if (Number.isInteger(i) && Number.isInteger(n) && n > 0 && i >= 0 && i < n) {
|
|
@@ -67,27 +76,52 @@ Usage:
|
|
|
67
76
|
blox-ssg [options] [extra-paths...]
|
|
68
77
|
|
|
69
78
|
Options:
|
|
70
|
-
--mode=<env>
|
|
71
|
-
--crawl
|
|
72
|
-
--no-crawl
|
|
73
|
-
--exclude=<path>
|
|
74
|
-
--
|
|
79
|
+
--mode=<env> Environment from bgl.config.ts (default: production)
|
|
80
|
+
--crawl Discover internal links from rendered HTML
|
|
81
|
+
--no-crawl Disable crawling (default)
|
|
82
|
+
--exclude=<path> Exclude path prefix from rendering
|
|
83
|
+
--shards=<n|auto> Render in N parallel child processes (auto = min(cores, cap)).
|
|
84
|
+
Avoids the single-process happy-dom leak on large sites and
|
|
85
|
+
parallelizes CPU-bound SSR. Merges each shard's llms parts.
|
|
86
|
+
--shard=<i/n> (internal) Render only this shard's slice — set by --shards.
|
|
87
|
+
--routes-cmd=<cmd> Shell command whose stdout (whitespace-separated) is the
|
|
88
|
+
route list. For router-driven sites with no CMS pages.
|
|
89
|
+
--help, -h Show this help
|
|
75
90
|
|
|
76
91
|
Environment:
|
|
77
|
-
BAGELINK_API_URL
|
|
78
|
-
WEBSITE_NAME
|
|
92
|
+
BAGELINK_API_URL Override API base URL
|
|
93
|
+
WEBSITE_NAME Override CMS website name
|
|
94
|
+
BLOX_SSG_SHARD_CAP Cap for --shards=auto (default 6)
|
|
95
|
+
BLOX_SSG_PREFETCH_BUDGET Global /resolve-path prefetch budget across shards (24)
|
|
79
96
|
`);
|
|
80
97
|
process.exit(0);
|
|
81
98
|
} else if (a.startsWith("--mode=")) {
|
|
82
99
|
mode = a.slice("--mode=".length);
|
|
83
100
|
} else if (a.startsWith("--exclude=")) {
|
|
84
101
|
excludePaths.push(a.slice("--exclude=".length));
|
|
102
|
+
passthroughArgs.push(a);
|
|
85
103
|
} else if (a.startsWith("--llm-parts=")) {
|
|
86
104
|
llmPartsFile = a.slice("--llm-parts=".length);
|
|
87
105
|
} else {
|
|
88
106
|
extraPaths.push(a);
|
|
89
107
|
}
|
|
90
108
|
}
|
|
109
|
+
if (shardsOpt !== null || routesCmd) {
|
|
110
|
+
const { apiBase: apiBase2, websiteName: configWebsiteName2 } = await resolveApiBase(mode);
|
|
111
|
+
const websiteName2 = process.env.WEBSITE_NAME ?? configWebsiteName2 ?? "default";
|
|
112
|
+
const { runSharded } = await import("../shard-runner-D4gCfCi3.js");
|
|
113
|
+
const code = await runSharded({
|
|
114
|
+
shards: shardsOpt ?? "auto",
|
|
115
|
+
mode,
|
|
116
|
+
apiBase: apiBase2,
|
|
117
|
+
websiteName: websiteName2,
|
|
118
|
+
extraPaths,
|
|
119
|
+
passthroughArgs,
|
|
120
|
+
routesCmd: routesCmd || void 0
|
|
121
|
+
});
|
|
122
|
+
process.exitCode = code;
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
91
125
|
const { apiBase, websiteName: configWebsiteName } = await resolveApiBase(mode);
|
|
92
126
|
await polyfillBloxSsgGlobals({ pageUrl: apiBase });
|
|
93
127
|
const websiteName = process.env.WEBSITE_NAME ?? configWebsiteName ?? "default";
|
package/dist/ssg/index.cjs
CHANGED
|
@@ -22,11 +22,11 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
22
22
|
mod
|
|
23
23
|
));
|
|
24
24
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
25
|
-
const
|
|
25
|
+
const cmsRoutes = require("../prerender-DQ7D6auC.cjs");
|
|
26
26
|
const ssg_client = require("./client.cjs");
|
|
27
27
|
const pinia = require("pinia");
|
|
28
28
|
const vue = require("vue");
|
|
29
|
-
const routes = require("../routes-
|
|
29
|
+
const routes = require("../routes-DxMOiC2D.cjs");
|
|
30
30
|
async function renderBloxSsgPage(options) {
|
|
31
31
|
var _a, _b, _c;
|
|
32
32
|
const {
|
|
@@ -61,7 +61,7 @@ async function renderBloxSsgPage(options) {
|
|
|
61
61
|
const seoOverride = seoHead && Object.keys(seoHead).length > 0 ? seoHead : void 0;
|
|
62
62
|
const bloxData = dataRegistry && collectData ? collectData(dataRegistry) : {};
|
|
63
63
|
const dataScript = Object.keys(bloxData).length > 0 ? `<script>window[${JSON.stringify(routes.BLOX_DATA_WINDOW_KEY)}]=${safeJson(bloxData)};${"<"}/script>` : "";
|
|
64
|
-
let head =
|
|
64
|
+
let head = cmsRoutes.buildPageHead({
|
|
65
65
|
url,
|
|
66
66
|
resolvedData,
|
|
67
67
|
website,
|
|
@@ -70,9 +70,9 @@ async function renderBloxSsgPage(options) {
|
|
|
70
70
|
stateScript: [stateScript, collectionsScript, websiteIdScript, dataScript].filter(Boolean).join("\n")
|
|
71
71
|
});
|
|
72
72
|
const seoData = resolvedData;
|
|
73
|
-
const primary =
|
|
73
|
+
const primary = cmsRoutes.primaryContextEntry(seoData == null ? void 0 : seoData.contexts);
|
|
74
74
|
if ((llm == null ? void 0 : llm.jsonLd) !== false) {
|
|
75
|
-
const jsonLd =
|
|
75
|
+
const jsonLd = cmsRoutes.buildJsonLd({
|
|
76
76
|
url,
|
|
77
77
|
page: seoData == null ? void 0 : seoData.page,
|
|
78
78
|
website,
|
|
@@ -92,7 +92,7 @@ ${jsonLd}`;
|
|
|
92
92
|
url,
|
|
93
93
|
title,
|
|
94
94
|
description,
|
|
95
|
-
text: (llm == null ? void 0 : llm.fullText) !== false ?
|
|
95
|
+
text: (llm == null ? void 0 : llm.fullText) !== false ? cmsRoutes.extractPageText(html) : void 0
|
|
96
96
|
};
|
|
97
97
|
}
|
|
98
98
|
const lang = locale || (website == null ? void 0 : website.default_locale) || "en";
|
|
@@ -234,21 +234,21 @@ function createBloxSSREntry(options) {
|
|
|
234
234
|
}
|
|
235
235
|
return { render, prefetchResolve };
|
|
236
236
|
}
|
|
237
|
-
exports.buildJsonLd =
|
|
238
|
-
exports.buildPageHead =
|
|
239
|
-
exports.buildSiteHead =
|
|
240
|
-
exports.extractPageText =
|
|
241
|
-
exports.fetchCmsPrerenderPaths =
|
|
242
|
-
exports.fetchCmsSiteData =
|
|
243
|
-
exports.generateLlmsFullTxt =
|
|
244
|
-
exports.generateLlmsTxt =
|
|
245
|
-
exports.generateNetlifyRedirects =
|
|
246
|
-
exports.generateRobotsTxt =
|
|
247
|
-
exports.generateSitemapXml =
|
|
248
|
-
exports.getSiteIconFlags =
|
|
249
|
-
exports.mergeLlmParts =
|
|
250
|
-
exports.polyfillBloxSsgGlobals =
|
|
251
|
-
exports.prerender =
|
|
237
|
+
exports.buildJsonLd = cmsRoutes.buildJsonLd;
|
|
238
|
+
exports.buildPageHead = cmsRoutes.buildPageHead;
|
|
239
|
+
exports.buildSiteHead = cmsRoutes.buildSiteHead;
|
|
240
|
+
exports.extractPageText = cmsRoutes.extractPageText;
|
|
241
|
+
exports.fetchCmsPrerenderPaths = cmsRoutes.fetchCmsPrerenderPaths;
|
|
242
|
+
exports.fetchCmsSiteData = cmsRoutes.fetchCmsSiteData;
|
|
243
|
+
exports.generateLlmsFullTxt = cmsRoutes.generateLlmsFullTxt;
|
|
244
|
+
exports.generateLlmsTxt = cmsRoutes.generateLlmsTxt;
|
|
245
|
+
exports.generateNetlifyRedirects = cmsRoutes.generateNetlifyRedirects;
|
|
246
|
+
exports.generateRobotsTxt = cmsRoutes.generateRobotsTxt;
|
|
247
|
+
exports.generateSitemapXml = cmsRoutes.generateSitemapXml;
|
|
248
|
+
exports.getSiteIconFlags = cmsRoutes.getSiteIconFlags;
|
|
249
|
+
exports.mergeLlmParts = cmsRoutes.mergeLlmParts;
|
|
250
|
+
exports.polyfillBloxSsgGlobals = cmsRoutes.polyfillBloxSsgGlobals;
|
|
251
|
+
exports.prerender = cmsRoutes.prerender;
|
|
252
252
|
exports.BLOX_COLLECTIONS_WINDOW_KEY = ssg_client.BLOX_COLLECTIONS_WINDOW_KEY;
|
|
253
253
|
exports.BLOX_DATA_WINDOW_KEY = ssg_client.BLOX_DATA_WINDOW_KEY;
|
|
254
254
|
exports.BLOX_PAGE_SEO_WINDOW_KEY = ssg_client.BLOX_PAGE_SEO_WINDOW_KEY;
|
package/dist/ssg/index.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { b as buildPageHead, c as primaryContextEntry, d as buildJsonLd, e as extractPageText } from "../prerender-
|
|
2
|
-
import { g, h, f, i, j, k, l, m, n, o, p, a } from "../prerender-
|
|
1
|
+
import { b as buildPageHead, c as primaryContextEntry, d as buildJsonLd, e as extractPageText } from "../prerender-BCRyYSNg.js";
|
|
2
|
+
import { g, h, f, i, j, k, l, m, n, o, p, a } from "../prerender-BCRyYSNg.js";
|
|
3
3
|
import { BLOX_STATE_WINDOW_KEY, BLOX_COLLECTIONS_WINDOW_KEY, BLOX_WEBSITE_ID_WINDOW_KEY } from "./client.mjs";
|
|
4
4
|
import { BLOX_DATA_WINDOW_KEY, BLOX_PAGE_SEO_WINDOW_KEY, getCollectionCache, getEmbeddedWebsiteId, installBloxStateCache, installCollectionCache } from "./client.mjs";
|
|
5
5
|
import { createPinia } from "pinia";
|
|
6
6
|
import { createSSRApp, h as h2, Suspense, markRaw } from "vue";
|
|
7
|
-
import { B as BLOX_DATA_WINDOW_KEY2, s as setApiOrigin, a as setActiveLocale, c as collectBloxData, b as collectBloxSeo, p as provideBloxData, d as createBlox, g as generateContentRoutes, i as installLocaleAwareResolve } from "../routes-
|
|
7
|
+
import { B as BLOX_DATA_WINDOW_KEY2, s as setApiOrigin, a as setActiveLocale, c as collectBloxData, b as collectBloxSeo, p as provideBloxData, d as createBlox, g as generateContentRoutes, i as installLocaleAwareResolve } from "../routes-DUYnmvXF.js";
|
|
8
8
|
async function renderBloxSsgPage(options) {
|
|
9
9
|
var _a, _b, _c;
|
|
10
10
|
const {
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in sharded SSG runner (coordinator).
|
|
3
|
+
*
|
|
4
|
+
* Vue SSR (`renderToString`) is CPU-bound and single-threaded, and a single
|
|
5
|
+
* long-lived `blox-ssg` process also accumulates happy-dom/window/timer state
|
|
6
|
+
* under bun — on large sites (thousands of pages) that leak eventually crashes
|
|
7
|
+
* the process silently. Splitting the work across N short-lived child processes
|
|
8
|
+
* (each rendering a disjoint `--shard=i/n` slice into the same `dist`) both
|
|
9
|
+
* parallelizes the CPU-bound render AND keeps each process well under the leak
|
|
10
|
+
* threshold.
|
|
11
|
+
*
|
|
12
|
+
* This module is the coordinator: it enumerates the route list once (optionally
|
|
13
|
+
* via an external `--routes-cmd` for router-driven sites that don't use CMS page
|
|
14
|
+
* discovery), then spawns the shards, divides the resolve-prefetch budget across
|
|
15
|
+
* them, and merges each shard's llms part file into the final llms.txt.
|
|
16
|
+
*
|
|
17
|
+
* Activated by `--shards=<n|auto>` on the CLI. Without it, the CLI runs a single
|
|
18
|
+
* in-process render exactly as before (full backward compat).
|
|
19
|
+
*/
|
|
20
|
+
export interface ShardRunnerOptions {
|
|
21
|
+
/** Number of shards, or 'auto' → min(cores, cap). */
|
|
22
|
+
shards: number | 'auto';
|
|
23
|
+
/** CLI mode (passed through to each shard as --mode=). */
|
|
24
|
+
mode: string;
|
|
25
|
+
/** Resolved API base (for the post-run llms merge). */
|
|
26
|
+
apiBase: string;
|
|
27
|
+
/** CMS website name (for the post-run llms merge). */
|
|
28
|
+
websiteName: string;
|
|
29
|
+
/** Extra paths already parsed from argv (router-driven sites, static routes). */
|
|
30
|
+
extraPaths: string[];
|
|
31
|
+
/** Other pass-through flags to forward verbatim to each shard (e.g. --exclude=…, --crawl). */
|
|
32
|
+
passthroughArgs: string[];
|
|
33
|
+
/**
|
|
34
|
+
* Optional shell command whose stdout (whitespace-separated) is a list of
|
|
35
|
+
* routes to render. Run once by the coordinator; the paths are forwarded to
|
|
36
|
+
* every shard. Lets router-driven sites (no CMS page discovery) enumerate
|
|
37
|
+
* their own routes without a bespoke runner script.
|
|
38
|
+
*/
|
|
39
|
+
routesCmd?: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Coordinate a sharded prerender. Returns the process exit code.
|
|
43
|
+
*/
|
|
44
|
+
export declare function runSharded(opts: ShardRunnerOptions): Promise<number>;
|
|
45
|
+
//# sourceMappingURL=shard-runner.d.ts.map
|
|
@@ -0,0 +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;AAyDD;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0D1E"}
|
package/dist/symbols.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InjectionKey } from 'vue';
|
|
1
|
+
import { InjectionKey, Ref } from 'vue';
|
|
2
2
|
import { LocaleStrategy } from './localeStrategy';
|
|
3
3
|
import { BlockDefinition } from './schema';
|
|
4
4
|
export declare const BLOX_REGISTRY_KEY: InjectionKey<Record<string, BlockDefinition>>;
|
|
@@ -8,6 +8,13 @@ export interface BloxConfig {
|
|
|
8
8
|
}
|
|
9
9
|
export declare const BLOX_CONFIG_KEY: InjectionKey<BloxConfig>;
|
|
10
10
|
export declare const BLOX_LOCALE_STRATEGY_KEY: InjectionKey<LocaleStrategy>;
|
|
11
|
+
export interface BloxRuntimeContext {
|
|
12
|
+
/** True only inside the Page Designer preview iframe. */
|
|
13
|
+
isPreview: Ref<boolean>;
|
|
14
|
+
/** True while the current page/context payload is still being resolved. */
|
|
15
|
+
loading: Ref<boolean>;
|
|
16
|
+
}
|
|
17
|
+
export declare const BLOX_RUNTIME_KEY: InjectionKey<BloxRuntimeContext>;
|
|
11
18
|
/**
|
|
12
19
|
* Opt-in "edit this page" feature for marketing sites.
|
|
13
20
|
*
|
package/dist/symbols.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../src/symbols.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../src/symbols.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAClD,CAAA;AAE1B,MAAM,WAAW,UAAU;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAC1B;AAED,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,UAAU,CAAyB,CAAA;AAE9E,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,cAAc,CAAkC,CAAA;AAEpG,MAAM,WAAW,kBAAkB;IAClC,yDAAyD;IACzD,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACvB,2EAA2E;IAC3E,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;CACrB;AAED,eAAO,MAAM,gBAAgB,EAAE,YAAY,CAAC,kBAAkB,CAA0B,CAAA;AAExF;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC/B,sFAAsF;IACtF,SAAS,EAAE,MAAM,CAAA;IACjB,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,eAAO,MAAM,qBAAqB,EAAE,YAAY,CAAC,eAAe,CAClC,CAAA;AAE9B;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAChC,uEAAuE;IACvE,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,gBAAgB,CACnC,CAAA"}
|
package/package.json
CHANGED