@bagelink/blox 1.15.147 → 1.15.154

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.
@@ -1,4 +1,4 @@
1
- import { _ as _sfc_main } from "./PreviewApp.vue_vue_type_style_index_0_lang-C0i8ucHq.js";
1
+ import { _ as _sfc_main } from "./PreviewApp.vue_vue_type_style_index_0_lang-Bi812qOg.js";
2
2
  export {
3
3
  _sfc_main as default
4
4
  };
@@ -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-CwX30h--.cjs");
3
+ const PreviewApp_vue_vue_type_style_index_0_lang = require("./PreviewApp.vue_vue_type_style_index_0_lang-hnJ-Wljq.cjs");
4
4
  exports.default = PreviewApp_vue_vue_type_style_index_0_lang._sfc_main;
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, inject, ref, h, provide, onMounted, onUnmounted, openBlock, createElementBlock, createVNode, unref, nextTick } from "vue";
2
- import { B as BLOX_REGISTRY_KEY, g as globalRefOf, G as GlobalBlockHost, u as useLocale } from "./core-VQR6lrvO.js";
2
+ import { B as BLOX_REGISTRY_KEY, g as globalRefOf, G as GlobalBlockHost, u as useLocale } from "./core-gh9n4Dh5.js";
3
3
  function sendToEditor(msg) {
4
4
  window.parent.postMessage(msg, "*");
5
5
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  const vue = require("vue");
3
- const core = require("./core-DmxEiWAR.cjs");
3
+ const core = require("./core-kcqrnwf4.cjs");
4
4
  function sendToEditor(msg) {
5
5
  window.parent.postMessage(msg, "*");
6
6
  }
@@ -595,6 +595,10 @@ class BloxInstance {
595
595
  }
596
596
  return this;
597
597
  }
598
+ /** The resolved block registry (type → definition with component + schema). */
599
+ getRegistry() {
600
+ return this._registry;
601
+ }
598
602
  registerRoutes(router) {
599
603
  if (this._routeRegistered) return this;
600
604
  if (this._config.supportedLocales.length > 0) {
@@ -609,7 +613,7 @@ class BloxInstance {
609
613
  }
610
614
  router.addRoute({
611
615
  path: "/_blox_preview",
612
- component: () => import("./PreviewApp-T3i0jOkB.js"),
616
+ component: () => import("./PreviewApp-BFlmJyS_.js"),
613
617
  beforeEnter: () => window.parent !== window ? true : "/"
614
618
  });
615
619
  router.addRoute({ path: "/:pathMatch(.*)*", component: _sfc_main$1 });
@@ -596,6 +596,10 @@ class BloxInstance {
596
596
  }
597
597
  return this;
598
598
  }
599
+ /** The resolved block registry (type → definition with component + schema). */
600
+ getRegistry() {
601
+ return this._registry;
602
+ }
599
603
  registerRoutes(router) {
600
604
  if (this._routeRegistered) return this;
601
605
  if (this._config.supportedLocales.length > 0) {
@@ -610,7 +614,7 @@ class BloxInstance {
610
614
  }
611
615
  router.addRoute({
612
616
  path: "/_blox_preview",
613
- component: () => Promise.resolve().then(() => require("./PreviewApp-0YmiHBi5.cjs")),
617
+ component: () => Promise.resolve().then(() => require("./PreviewApp-F96n6nDi.cjs")),
614
618
  beforeEnter: () => window.parent !== window ? true : "/"
615
619
  });
616
620
  router.addRoute({ path: "/:pathMatch(.*)*", component: _sfc_main$1 });
package/dist/core.d.ts CHANGED
@@ -40,6 +40,8 @@ export declare class BloxInstance {
40
40
  constructor(options?: BloxOptions);
41
41
  registerModules(modules: BlockModule[] | Record<string, BlockModule>): this;
42
42
  registerComponents(components: Record<string, BloxComponent>): this;
43
+ /** The resolved block registry (type → definition with component + schema). */
44
+ getRegistry(): Record<string, BlockDefinition>;
43
45
  registerRoutes(router: Router): this;
44
46
  install(app: App, options?: BloxOptions): void;
45
47
  }
@@ -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,EAAkB,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;AAmB5D,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,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI;IA8B3E,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,IAAI;IA2BnE,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAyBpC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI;CAkC9C;AAMD,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,YAAY,CAS9D"}
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,EAAkB,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;AAmB5D,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,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI;IA8B3E,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,IAAI;IA2BnE,+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;CAkC9C;AAMD,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,YAAY,CAS9D"}
@@ -54,7 +54,37 @@ export interface CreateBloxAppOptions {
54
54
  * Receives the Vue app instance.
55
55
  */
56
56
  setup?: (app: App) => void;
57
+ /**
58
+ * Plausible Analytics config. When set, a tracking script is injected into
59
+ * `<head>` at runtime (client-only; no-ops during SSR).
60
+ *
61
+ * - `string` shorthand → the Plausible site id / `data-domain`.
62
+ * - object → `{ domain, src?, apiHost? }` for full control.
63
+ *
64
+ * Defaults to the self-hosted instance at `https://analytics.bagel.to`.
65
+ *
66
+ * @example
67
+ * plausible: 'auctentic2.netlify.app'
68
+ */
69
+ plausible?: string | PlausibleOptions;
57
70
  }
71
+ /** Plausible Analytics injection options. */
72
+ export interface PlausibleOptions {
73
+ /** The Plausible site id — matches the site's `domain` in Plausible (used as `data-domain`). */
74
+ domain: string;
75
+ /**
76
+ * Full script URL. Defaults to `${apiHost}/js/script.js`.
77
+ * Use a variant (e.g. `script.hash.outbound-links.js`) to enable extensions.
78
+ */
79
+ src?: string;
80
+ /** Self-hosted Plausible host. @default 'https://analytics.bagel.to' */
81
+ apiHost?: string;
82
+ }
83
+ /**
84
+ * Inject the Plausible tracking script into `<head>` (client-only, idempotent).
85
+ * No-ops during SSR or if a script for the same domain already exists.
86
+ */
87
+ export declare function injectPlausible(config: string | PlausibleOptions): void;
58
88
  /** Minimal axios shape for interceptor installation. */
59
89
  interface AxiosLike {
60
90
  interceptors: {
@@ -1 +1 @@
1
- {"version":3,"file":"createBloxApp.d.ts","sourceRoot":"","sources":["../src/createBloxApp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,QAAQ,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAOhD,MAAM,WAAW,oBAAoB;IACpC,oCAAoC;IACpC,aAAa,EAAE,SAAS,CAAA;IACxB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACpD,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAA;IACnB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACxB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK;QAAE,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,CAAA;IAChE;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAA;IAChD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC5C;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;CAC1B;AAED,wDAAwD;AACxD,UAAU,SAAS;IAClB,YAAY,EAAE;QACb,OAAO,EAAE;YAER,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,KAAK,IAAI,CAAA;SACvC,CAAA;KACD,CAAA;CACD;AAED,MAAM,WAAW,aAAa;IAC7B,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,YAAY,CAAA;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CA8E1E"}
1
+ {"version":3,"file":"createBloxApp.d.ts","sourceRoot":"","sources":["../src/createBloxApp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,QAAQ,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAOhD,MAAM,WAAW,oBAAoB;IACpC,oCAAoC;IACpC,aAAa,EAAE,SAAS,CAAA;IACxB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACpD,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAA;IACnB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACxB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK;QAAE,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,CAAA;IAChE;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAA;IAChD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAC5C;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;IAC1B;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAA;CACrC;AAED,6CAA6C;AAC7C,MAAM,WAAW,gBAAgB;IAChC,gGAAgG;IAChG,MAAM,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAoBvE;AAED,wDAAwD;AACxD,UAAU,SAAS;IAClB,YAAY,EAAE;QACb,OAAO,EAAE;YAER,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,KAAK,IAAI,CAAA;SACvC,CAAA;KACD,CAAA;CACD;AAED,MAAM,WAAW,aAAa;IAC7B,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,YAAY,CAAA;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAkF1E"}
package/dist/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const core = require("./core-DmxEiWAR.cjs");
4
- const PreviewApp_vue_vue_type_style_index_0_lang = require("./PreviewApp.vue_vue_type_style_index_0_lang-CwX30h--.cjs");
3
+ const core = require("./core-kcqrnwf4.cjs");
4
+ const PreviewApp_vue_vue_type_style_index_0_lang = require("./PreviewApp.vue_vue_type_style_index_0_lang-hnJ-Wljq.cjs");
5
5
  const vue = require("vue");
6
6
  const vueRouter = require("vue-router");
7
7
  const pinia = require("pinia");
@@ -60,6 +60,22 @@ function usePageContext(key) {
60
60
  return value;
61
61
  });
62
62
  }
63
+ const DEFAULT_PLAUSIBLE_HOST = "https://analytics.bagel.to";
64
+ function injectPlausible(config) {
65
+ if (typeof document === "undefined") return;
66
+ const opts = typeof config === "string" ? { domain: config } : config;
67
+ const { domain } = opts;
68
+ if (!domain) return;
69
+ const apiHost = (opts.apiHost ?? DEFAULT_PLAUSIBLE_HOST).replace(/\/$/, "");
70
+ const src = opts.src ?? `${apiHost}/js/script.js`;
71
+ if (document.querySelector(`script[data-domain="${domain}"]`)) return;
72
+ const el = document.createElement("script");
73
+ el.defer = true;
74
+ el.setAttribute("data-domain", domain);
75
+ el.src = src;
76
+ el.setAttribute("data-api", `${apiHost}/api/event`);
77
+ document.head.appendChild(el);
78
+ }
63
79
  function createBloxApp(options) {
64
80
  const {
65
81
  rootComponent,
@@ -73,8 +89,10 @@ function createBloxApp(options) {
73
89
  mount: mountTarget = "#app",
74
90
  plugins = [],
75
91
  globalComponents = {},
76
- setup: userSetup
92
+ setup: userSetup,
93
+ plausible
77
94
  } = options;
95
+ if (plausible) injectPlausible(plausible);
78
96
  ssg_client.installBloxStateCache();
79
97
  let axiosInstance;
80
98
  if (options.createApi) {
@@ -133,6 +151,39 @@ function defineBlock(meta) {
133
151
  }
134
152
  return meta;
135
153
  }
154
+ const MANIFEST_VERSION = 1;
155
+ function definitionToEntry(type, def) {
156
+ const { schema } = def;
157
+ let propsSchema = null;
158
+ const fields = schema.fields;
159
+ if (fields && typeof fields.toJSONSchema === "function") {
160
+ const hasFields = fields._fields && Object.keys(fields._fields).length > 0;
161
+ if (hasFields) {
162
+ try {
163
+ propsSchema = fields.toJSONSchema();
164
+ } catch {
165
+ propsSchema = null;
166
+ }
167
+ }
168
+ }
169
+ return {
170
+ type,
171
+ label: schema.label,
172
+ icon: schema.icon,
173
+ description: schema.description,
174
+ dataSource: schema.dataSource,
175
+ order: schema.order,
176
+ propsSchema,
177
+ defaults: schema.defaults
178
+ };
179
+ }
180
+ function serializeRegistry(registry) {
181
+ const blocks = Object.entries(registry).map(([type, def]) => definitionToEntry(type, def)).sort((a, b) => (a.order ?? 100) - (b.order ?? 100) || a.label.localeCompare(b.label));
182
+ return { version: MANIFEST_VERSION, blocks };
183
+ }
184
+ function buildBloxManifest(blox) {
185
+ return serializeRegistry(blox.getRegistry());
186
+ }
136
187
  exports.AdminEditBar = core._sfc_main;
137
188
  exports.BLOX_ADMIN_CONFIG_KEY = core.BLOX_ADMIN_CONFIG_KEY;
138
189
  exports.BLOX_CONFIG_KEY = core.BLOX_CONFIG_KEY;
@@ -156,8 +207,11 @@ exports.PreviewApp = PreviewApp_vue_vue_type_style_index_0_lang._sfc_main;
156
207
  exports.PreviewRenderer = PreviewApp_vue_vue_type_style_index_0_lang.PreviewRenderer;
157
208
  exports.sendToEditor = PreviewApp_vue_vue_type_style_index_0_lang.sendToEditor;
158
209
  exports.sendToPreview = PreviewApp_vue_vue_type_style_index_0_lang.sendToPreview;
210
+ exports.buildBloxManifest = buildBloxManifest;
159
211
  exports.createBloxApp = createBloxApp;
160
212
  exports.defineBlock = defineBlock;
213
+ exports.injectPlausible = injectPlausible;
214
+ exports.serializeRegistry = serializeRegistry;
161
215
  exports.useGlobalBlock = useGlobalBlock;
162
216
  exports.useLocaleNav = useLocaleNav;
163
217
  exports.usePageContext = usePageContext;
package/dist/index.d.ts CHANGED
@@ -14,14 +14,16 @@ export { useLocaleNav } from './composables/useLocaleNav';
14
14
  export { usePageContext } from './composables/usePageContext';
15
15
  export { BloxInstance, createBlox } from './core';
16
16
  export type { BloxComponent, BloxOptions } from './core';
17
- export { createBloxApp } from './createBloxApp';
18
- export type { BloxAppResult, CreateBloxAppOptions } from './createBloxApp';
17
+ export { createBloxApp, injectPlausible } from './createBloxApp';
18
+ export type { BloxAppResult, CreateBloxAppOptions, PlausibleOptions } from './createBloxApp';
19
19
  export { defineBlock } from './defineBlock';
20
20
  export type { BlockMeta, BlockModule } from './defineBlock';
21
21
  export type { LocaleStrategy } from './localeStrategy';
22
22
  export { default as PageRenderer } from './PageRenderer';
23
23
  export { default as PreviewApp } from './PreviewApp.vue';
24
24
  export { default as PreviewRenderer } from './PreviewRenderer';
25
+ export { buildBloxManifest, serializeRegistry } from './manifest';
26
+ export type { BloxManifest, BlockManifestEntry } from './manifest';
25
27
  export type { BlockComponent, BlockDefinition, BlockSchema } from './schema';
26
28
  export { BLOX_ADMIN_CONFIG_KEY, BLOX_CONFIG_KEY, BLOX_GLOBAL_RESOLVER_KEY, BLOX_LOCALE_STRATEGY_KEY } from './symbols';
27
29
  export type { BloxAdminConfig, BloxConfig, GlobalBlockResolver } from './symbols';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAClG,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAKnD,YAAY,EACX,cAAc,EACd,KAAK,EAEL,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,cAAc,EACd,QAAQ,EACR,eAAe,EACf,cAAc,EACd,WAAW,GACX,MAAM,aAAa,CAAA;AAIpB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACtD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAI9E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAK1D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAKjD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAK7D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACjD,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAKxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAK1E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3D,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAK9D,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAI5E,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAEtH,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAEjF,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAClG,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAKnD,YAAY,EACX,cAAc,EACd,KAAK,EAEL,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,cAAc,EACd,QAAQ,EACR,eAAe,EACf,cAAc,EACd,WAAW,GACX,MAAM,aAAa,CAAA;AAIpB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACtD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAI9E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAK1D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAKjD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAK7D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACjD,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAKxD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAChE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAK5F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3D,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAK9D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACjE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAKlE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAI5E,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAEtH,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAEjF,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { a as BLOX_LOCALE_STRATEGY_KEY, u as useLocale, c as createBlox } from "./core-VQR6lrvO.js";
2
- import { _, b, d, e, f, h, i, G, P, j, k, l, g, m, r, n } from "./core-VQR6lrvO.js";
3
- import { _ as _2, P as P2, s, a } from "./PreviewApp.vue_vue_type_style_index_0_lang-C0i8ucHq.js";
1
+ import { a as BLOX_LOCALE_STRATEGY_KEY, u as useLocale, c as createBlox } from "./core-gh9n4Dh5.js";
2
+ import { _, b, d, e, f, h, i, G, P, j, k, l, g, m, r, n } from "./core-gh9n4Dh5.js";
3
+ import { _ as _2, P as P2, s, a } from "./PreviewApp.vue_vue_type_style_index_0_lang-Bi812qOg.js";
4
4
  import { ref, onMounted, onUnmounted, inject, computed, createApp, markRaw } from "vue";
5
5
  import { useRouter } from "vue-router";
6
6
  import { createPinia } from "pinia";
@@ -59,6 +59,22 @@ function usePageContext(key) {
59
59
  return value;
60
60
  });
61
61
  }
62
+ const DEFAULT_PLAUSIBLE_HOST = "https://analytics.bagel.to";
63
+ function injectPlausible(config) {
64
+ if (typeof document === "undefined") return;
65
+ const opts = typeof config === "string" ? { domain: config } : config;
66
+ const { domain } = opts;
67
+ if (!domain) return;
68
+ const apiHost = (opts.apiHost ?? DEFAULT_PLAUSIBLE_HOST).replace(/\/$/, "");
69
+ const src = opts.src ?? `${apiHost}/js/script.js`;
70
+ if (document.querySelector(`script[data-domain="${domain}"]`)) return;
71
+ const el = document.createElement("script");
72
+ el.defer = true;
73
+ el.setAttribute("data-domain", domain);
74
+ el.src = src;
75
+ el.setAttribute("data-api", `${apiHost}/api/event`);
76
+ document.head.appendChild(el);
77
+ }
62
78
  function createBloxApp(options) {
63
79
  const {
64
80
  rootComponent,
@@ -72,8 +88,10 @@ function createBloxApp(options) {
72
88
  mount: mountTarget = "#app",
73
89
  plugins = [],
74
90
  globalComponents = {},
75
- setup: userSetup
91
+ setup: userSetup,
92
+ plausible
76
93
  } = options;
94
+ if (plausible) injectPlausible(plausible);
77
95
  installBloxStateCache();
78
96
  let axiosInstance;
79
97
  if (options.createApi) {
@@ -132,6 +150,39 @@ function defineBlock(meta) {
132
150
  }
133
151
  return meta;
134
152
  }
153
+ const MANIFEST_VERSION = 1;
154
+ function definitionToEntry(type, def) {
155
+ const { schema } = def;
156
+ let propsSchema = null;
157
+ const fields = schema.fields;
158
+ if (fields && typeof fields.toJSONSchema === "function") {
159
+ const hasFields = fields._fields && Object.keys(fields._fields).length > 0;
160
+ if (hasFields) {
161
+ try {
162
+ propsSchema = fields.toJSONSchema();
163
+ } catch {
164
+ propsSchema = null;
165
+ }
166
+ }
167
+ }
168
+ return {
169
+ type,
170
+ label: schema.label,
171
+ icon: schema.icon,
172
+ description: schema.description,
173
+ dataSource: schema.dataSource,
174
+ order: schema.order,
175
+ propsSchema,
176
+ defaults: schema.defaults
177
+ };
178
+ }
179
+ function serializeRegistry(registry) {
180
+ const blocks = Object.entries(registry).map(([type, def]) => definitionToEntry(type, def)).sort((a2, b2) => (a2.order ?? 100) - (b2.order ?? 100) || a2.label.localeCompare(b2.label));
181
+ return { version: MANIFEST_VERSION, blocks };
182
+ }
183
+ function buildBloxManifest(blox) {
184
+ return serializeRegistry(blox.getRegistry());
185
+ }
135
186
  export {
136
187
  _ as AdminEditBar,
137
188
  b as BLOX_ADMIN_CONFIG_KEY,
@@ -145,6 +196,7 @@ export {
145
196
  P as PageRenderer,
146
197
  _2 as PreviewApp,
147
198
  P2 as PreviewRenderer,
199
+ buildBloxManifest,
148
200
  j as configureApi,
149
201
  createBlox,
150
202
  createBloxApp,
@@ -152,10 +204,12 @@ export {
152
204
  k as getWebsiteId,
153
205
  l as getWebsiteIdSync,
154
206
  g as globalRefOf,
207
+ injectPlausible,
155
208
  m as listItems,
156
209
  r as resolvePath,
157
210
  s as sendToEditor,
158
211
  a as sendToPreview,
212
+ serializeRegistry,
159
213
  n as useBloxEdit,
160
214
  useGlobalBlock,
161
215
  useLocale,
@@ -0,0 +1,51 @@
1
+ import { BloxInstance } from './core';
2
+ import { BlockDefinition } from './schema';
3
+ /**
4
+ * Backend-friendly description of a single registered block.
5
+ *
6
+ * This is the shape stored on the Blox `Website.block_manifest` and served to
7
+ * agents via the blox MCP `describe_blocks` tool. It contains ONLY serializable
8
+ * data (no Vue components, no functions) so it can be persisted as JSON and read
9
+ * by any runtime.
10
+ */
11
+ export interface BlockManifestEntry {
12
+ /** Block type key — matches `block.type` in page content. */
13
+ type: string;
14
+ /** Human-readable label shown in the editor. */
15
+ label: string;
16
+ /** Material icon name. */
17
+ icon?: string;
18
+ /** What the block is for — helps an agent pick the right block. */
19
+ description?: string;
20
+ /** True when the block fetches its own data from a datastore collection. */
21
+ dataSource?: boolean;
22
+ /** Sort order in the editor block picker (lower first). */
23
+ order?: number;
24
+ /**
25
+ * JSON Schema for the block's editable props (from FormFlow
26
+ * `SchemaDefinition.toJSONSchema()`). `null` when the block has no
27
+ * configurable props (static / i18n-driven content).
28
+ */
29
+ propsSchema: Record<string, unknown> | null;
30
+ /** Default prop values, merged over props at render time. */
31
+ defaults?: Record<string, unknown>;
32
+ }
33
+ export interface BloxManifest {
34
+ /** Manifest format version (bump on breaking shape changes). */
35
+ version: number;
36
+ /** All registered blocks, sorted by `order` then `label`. */
37
+ blocks: BlockManifestEntry[];
38
+ }
39
+ /**
40
+ * Build a serializable manifest from a resolved block registry.
41
+ *
42
+ * @example
43
+ * const manifest = serializeRegistry(blox.getRegistry())
44
+ * await fetch('/api/blox/websites/<id>/manifest', {
45
+ * method: 'PUT', body: JSON.stringify(manifest),
46
+ * })
47
+ */
48
+ export declare function serializeRegistry(registry: Record<string, BlockDefinition>): BloxManifest;
49
+ /** Convenience: build a manifest directly from a BloxInstance. */
50
+ export declare function buildBloxManifest(blox: BloxInstance): BloxManifest;
51
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IAClC,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAA;IACZ,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAA;IACb,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC3C,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,YAAY;IAC5B,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,MAAM,EAAE,kBAAkB,EAAE,CAAA;CAC5B;AAkCD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GACvC,YAAY,CAKd;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAElE"}
@@ -234,7 +234,10 @@ function buildSiteHead(website) {
234
234
  }
235
235
  const plausibleId = website.plausible_site_id;
236
236
  if (plausibleId) {
237
- parts.push(`<script defer data-domain="${esc(plausibleId)}" src="https://plausible.io/js/script.js"><${"/"}script>`);
237
+ const host = "https://analytics.bagel.to";
238
+ parts.push(
239
+ `<script defer data-domain="${esc(plausibleId)}" data-api="${host}/api/event" src="${host}/js/script.js"><${"/"}script>`
240
+ );
238
241
  }
239
242
  return parts.join("\n");
240
243
  }
@@ -211,7 +211,10 @@ function buildSiteHead(website) {
211
211
  }
212
212
  const plausibleId = website.plausible_site_id;
213
213
  if (plausibleId) {
214
- parts.push(`<script defer data-domain="${esc(plausibleId)}" src="https://plausible.io/js/script.js"><${"/"}script>`);
214
+ const host = "https://analytics.bagel.to";
215
+ parts.push(
216
+ `<script defer data-domain="${esc(plausibleId)}" data-api="${host}/api/event" src="${host}/js/script.js"><${"/"}script>`
217
+ );
215
218
  }
216
219
  return parts.join("\n");
217
220
  }
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-DH6Arhpk.cjs");
4
+ const prerender = require("../prerender-DOfER6E2.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 };
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-D7OWxgfs.js";
3
+ import { p as polyfillBloxSsgGlobals, f as fetchCmsSiteData, a as prerender } from "../prerender-DidXkI2x.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 };
@@ -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 prerender = require("../prerender-DH6Arhpk.cjs");
25
+ const prerender = require("../prerender-DOfER6E2.cjs");
26
26
  const ssg_client = require("./client.cjs");
27
27
  const pinia = require("pinia");
28
28
  const vue = require("vue");
29
- const core = require("../core-DmxEiWAR.cjs");
29
+ const core = require("../core-kcqrnwf4.cjs");
30
30
  async function renderBloxSsgPage(options) {
31
31
  const {
32
32
  url,
@@ -1,10 +1,10 @@
1
- import { b as buildPageHead } from "../prerender-D7OWxgfs.js";
2
- import { c, d, f, g, e, h, i, p, a } from "../prerender-D7OWxgfs.js";
1
+ import { b as buildPageHead } from "../prerender-DidXkI2x.js";
2
+ import { c, d, f, g, e, h, i, p, a } from "../prerender-DidXkI2x.js";
3
3
  import { BLOX_STATE_WINDOW_KEY, BLOX_COLLECTIONS_WINDOW_KEY, BLOX_WEBSITE_ID_WINDOW_KEY } from "./client.mjs";
4
4
  import { getCollectionCache, getEmbeddedWebsiteId, installBloxStateCache, installCollectionCache } from "./client.mjs";
5
5
  import { createPinia } from "pinia";
6
6
  import { createSSRApp, markRaw } from "vue";
7
- import { c as createBlox } from "../core-VQR6lrvO.js";
7
+ import { c as createBlox } from "../core-gh9n4Dh5.js";
8
8
  async function renderBloxSsgPage(options) {
9
9
  const {
10
10
  url,
@@ -1 +1 @@
1
- {"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../../src/ssg/seo.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAMzD,4DAA4D;AAC5D,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,QAAQ,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;CACzD;AAED,mEAAmE;AACnE,MAAM,WAAW,WAAW;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,aAAa;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;CACnB;AAMD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACtC,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,WAAW,GAAG,IAAI,CAAA;IAChC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB,GAAG,MAAM,CAiFT;AAMD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,CA8CjE;AAMD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC3C,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;CACxB,GAAG,MAAM,CAmBT;AAMD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IAC1C,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB,GAAG,MAAM,CAmBT;AAMD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,MAAM,CAK3E;AAMD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1D,MAAM,CAwBR;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG;IAC9D,UAAU,EAAE,OAAO,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;CACnB,CAMA"}
1
+ {"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../../src/ssg/seo.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAMzD,4DAA4D;AAC5D,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,QAAQ,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;CACzD;AAED,mEAAmE;AACnE,MAAM,WAAW,WAAW;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,aAAa;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;CACnB;AAMD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACtC,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,WAAW,GAAG,IAAI,CAAA;IAChC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB,GAAG,MAAM,CAiFT;AAMD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,CAiDjE;AAMD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC3C,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAA;CACxB,GAAG,MAAM,CAmBT;AAMD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IAC1C,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB,GAAG,MAAM,CAmBT;AAMD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,MAAM,CAK3E;AAMD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1D,MAAM,CAwBR;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG;IAC9D,UAAU,EAAE,OAAO,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;CACnB,CAMA"}