@bagelink/blox 1.15.218 → 1.15.222

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.
@@ -63,20 +63,24 @@ async function expandRoutes(apiBase, pages) {
63
63
  const b = binding;
64
64
  if (b.adapter === "datastore" && b.collection != null && b.collection !== "" && b.store != null && b.store !== "" && b.bind_by != null && b.bind_by !== "") {
65
65
  try {
66
+ const q = b.filter ? `&q=${encodeURIComponent(b.filter)}` : "";
66
67
  const itemsRes = await fetch(
67
- `${apiBase}/datastore/${b.store}/collections/${b.collection}?limit=200`
68
+ `${apiBase}/datastore/${b.store}/collections/${b.collection}?limit=200${q}`
68
69
  );
69
70
  const itemsData = await itemsRes.json();
70
71
  const items = Array.isArray(itemsData) ? itemsData : itemsData.data ?? [];
71
72
  for (const item of items) {
72
73
  const bindValue = item[b.bind_by];
73
- if (bindValue != null && bindValue !== "") {
74
- const concrete = slug.replace(
75
- /:([a-z_]+)/g,
76
- (_m, p) => p === b.bind_by ? String(bindValue) : String(item[p] ?? "")
77
- );
78
- routes.push(concrete);
79
- }
74
+ if (typeof bindValue !== "string" || bindValue === "") continue;
75
+ const concrete = slug.replace(
76
+ /:([a-z_]+)/g,
77
+ (_m, p) => {
78
+ const v = p === b.bind_by ? bindValue : item[p];
79
+ return typeof v === "string" ? v : "";
80
+ }
81
+ );
82
+ if (concrete.includes("//") || concrete.endsWith("/")) continue;
83
+ routes.push(concrete);
80
84
  }
81
85
  } catch (e) {
82
86
  console.warn(` [blox-ssg] Could not expand ${slug}: ${e.message}`);
@@ -356,6 +360,7 @@ async function prerender({
356
360
  failFast = false,
357
361
  maxPages = 5e3,
358
362
  concurrency = 6,
363
+ writeSharedAssets = true,
359
364
  mode = "dir",
360
365
  website = null,
361
366
  websiteId = "",
@@ -452,30 +457,32 @@ async function prerender({
452
457
  await Promise.all(workers);
453
458
  }
454
459
  const canonicalBase = (((_a = website == null ? void 0 : website.seo) == null ? void 0 : _a.canonical_base_url) || (website == null ? void 0 : website.domain) || "").replace(/\/$/, "");
455
- const sitemapPaths = rendered.filter((p) => !noindexPaths.has(p));
456
- if (canonicalBase && sitemapPaths.length > 0) {
457
- const sitemap = generateSitemapXml({ renderedPaths: sitemapPaths, canonicalBase, lastmod });
458
- await fs.writeFile(path.join(absClient, "sitemap.xml"), sitemap, "utf8");
459
- const skipped = noindexPaths.size > 0 ? ` (${noindexPaths.size} noindex excluded)` : "";
460
- console.log(` Generated sitemap.xml (${sitemapPaths.length} URLs)${skipped}`);
461
- }
462
- const robotsTxt = generateRobotsTxt({
463
- robotsTxt: website == null ? void 0 : website.robots_txt,
464
- canonicalBase,
465
- noindex: (_b = website == null ? void 0 : website.seo) == null ? void 0 : _b.noindex
466
- });
467
- await fs.writeFile(path.join(absClient, "robots.txt"), robotsTxt, "utf8");
468
- console.log(" Generated robots.txt");
469
- if (redirects.length > 0) {
470
- const redirectsContent = generateNetlifyRedirects(redirects);
471
- const redirectsPath = path.join(absClient, "_redirects");
472
- let existing = "";
473
- try {
474
- existing = await fs.readFile(redirectsPath, "utf8");
475
- } catch {
460
+ if (writeSharedAssets) {
461
+ const sitemapPaths = rendered.filter((p) => !noindexPaths.has(p));
462
+ if (canonicalBase && sitemapPaths.length > 0) {
463
+ const sitemap = generateSitemapXml({ renderedPaths: sitemapPaths, canonicalBase, lastmod });
464
+ await fs.writeFile(path.join(absClient, "sitemap.xml"), sitemap, "utf8");
465
+ const skipped = noindexPaths.size > 0 ? ` (${noindexPaths.size} noindex excluded)` : "";
466
+ console.log(` Generated sitemap.xml (${sitemapPaths.length} URLs)${skipped}`);
467
+ }
468
+ const robotsTxt = generateRobotsTxt({
469
+ robotsTxt: website == null ? void 0 : website.robots_txt,
470
+ canonicalBase,
471
+ noindex: (_b = website == null ? void 0 : website.seo) == null ? void 0 : _b.noindex
472
+ });
473
+ await fs.writeFile(path.join(absClient, "robots.txt"), robotsTxt, "utf8");
474
+ console.log(" Generated robots.txt");
475
+ if (redirects.length > 0) {
476
+ const redirectsContent = generateNetlifyRedirects(redirects);
477
+ const redirectsPath = path.join(absClient, "_redirects");
478
+ let existing = "";
479
+ try {
480
+ existing = await fs.readFile(redirectsPath, "utf8");
481
+ } catch {
482
+ }
483
+ await fs.writeFile(redirectsPath, redirectsContent + existing, "utf8");
484
+ console.log(` Generated _redirects (${redirects.length} rules)`);
476
485
  }
477
- await fs.writeFile(redirectsPath, redirectsContent + existing, "utf8");
478
- console.log(` Generated _redirects (${redirects.length} rules)`);
479
486
  }
480
487
  return {
481
488
  rendered,
@@ -597,6 +604,7 @@ function discoverInternalLinks(html) {
597
604
  while ((m = hrefRe.exec(html)) !== null) {
598
605
  const raw = (m[1] ?? m[2] ?? "").trim();
599
606
  if (!raw) continue;
607
+ if (raw.includes("[object Object]") || raw.includes("undefined") || raw.includes("/null")) continue;
600
608
  if (raw.startsWith("mailto:") || raw.startsWith("tel:") || raw.startsWith("javascript:") || raw.startsWith("#")) {
601
609
  continue;
602
610
  }
@@ -86,20 +86,24 @@ async function expandRoutes(apiBase, pages) {
86
86
  const b = binding;
87
87
  if (b.adapter === "datastore" && b.collection != null && b.collection !== "" && b.store != null && b.store !== "" && b.bind_by != null && b.bind_by !== "") {
88
88
  try {
89
+ const q = b.filter ? `&q=${encodeURIComponent(b.filter)}` : "";
89
90
  const itemsRes = await fetch(
90
- `${apiBase}/datastore/${b.store}/collections/${b.collection}?limit=200`
91
+ `${apiBase}/datastore/${b.store}/collections/${b.collection}?limit=200${q}`
91
92
  );
92
93
  const itemsData = await itemsRes.json();
93
94
  const items = Array.isArray(itemsData) ? itemsData : itemsData.data ?? [];
94
95
  for (const item of items) {
95
96
  const bindValue = item[b.bind_by];
96
- if (bindValue != null && bindValue !== "") {
97
- const concrete = slug.replace(
98
- /:([a-z_]+)/g,
99
- (_m, p) => p === b.bind_by ? String(bindValue) : String(item[p] ?? "")
100
- );
101
- routes.push(concrete);
102
- }
97
+ if (typeof bindValue !== "string" || bindValue === "") continue;
98
+ const concrete = slug.replace(
99
+ /:([a-z_]+)/g,
100
+ (_m, p) => {
101
+ const v = p === b.bind_by ? bindValue : item[p];
102
+ return typeof v === "string" ? v : "";
103
+ }
104
+ );
105
+ if (concrete.includes("//") || concrete.endsWith("/")) continue;
106
+ routes.push(concrete);
103
107
  }
104
108
  } catch (e) {
105
109
  console.warn(` [blox-ssg] Could not expand ${slug}: ${e.message}`);
@@ -379,6 +383,7 @@ async function prerender({
379
383
  failFast = false,
380
384
  maxPages = 5e3,
381
385
  concurrency = 6,
386
+ writeSharedAssets = true,
382
387
  mode = "dir",
383
388
  website = null,
384
389
  websiteId = "",
@@ -475,30 +480,32 @@ async function prerender({
475
480
  await Promise.all(workers);
476
481
  }
477
482
  const canonicalBase = (((_a = website == null ? void 0 : website.seo) == null ? void 0 : _a.canonical_base_url) || (website == null ? void 0 : website.domain) || "").replace(/\/$/, "");
478
- const sitemapPaths = rendered.filter((p) => !noindexPaths.has(p));
479
- if (canonicalBase && sitemapPaths.length > 0) {
480
- const sitemap = generateSitemapXml({ renderedPaths: sitemapPaths, canonicalBase, lastmod });
481
- await fs.writeFile(path.join(absClient, "sitemap.xml"), sitemap, "utf8");
482
- const skipped = noindexPaths.size > 0 ? ` (${noindexPaths.size} noindex excluded)` : "";
483
- console.log(` Generated sitemap.xml (${sitemapPaths.length} URLs)${skipped}`);
484
- }
485
- const robotsTxt = generateRobotsTxt({
486
- robotsTxt: website == null ? void 0 : website.robots_txt,
487
- canonicalBase,
488
- noindex: (_b = website == null ? void 0 : website.seo) == null ? void 0 : _b.noindex
489
- });
490
- await fs.writeFile(path.join(absClient, "robots.txt"), robotsTxt, "utf8");
491
- console.log(" Generated robots.txt");
492
- if (redirects.length > 0) {
493
- const redirectsContent = generateNetlifyRedirects(redirects);
494
- const redirectsPath = path.join(absClient, "_redirects");
495
- let existing = "";
496
- try {
497
- existing = await fs.readFile(redirectsPath, "utf8");
498
- } catch {
483
+ if (writeSharedAssets) {
484
+ const sitemapPaths = rendered.filter((p) => !noindexPaths.has(p));
485
+ if (canonicalBase && sitemapPaths.length > 0) {
486
+ const sitemap = generateSitemapXml({ renderedPaths: sitemapPaths, canonicalBase, lastmod });
487
+ await fs.writeFile(path.join(absClient, "sitemap.xml"), sitemap, "utf8");
488
+ const skipped = noindexPaths.size > 0 ? ` (${noindexPaths.size} noindex excluded)` : "";
489
+ console.log(` Generated sitemap.xml (${sitemapPaths.length} URLs)${skipped}`);
490
+ }
491
+ const robotsTxt = generateRobotsTxt({
492
+ robotsTxt: website == null ? void 0 : website.robots_txt,
493
+ canonicalBase,
494
+ noindex: (_b = website == null ? void 0 : website.seo) == null ? void 0 : _b.noindex
495
+ });
496
+ await fs.writeFile(path.join(absClient, "robots.txt"), robotsTxt, "utf8");
497
+ console.log(" Generated robots.txt");
498
+ if (redirects.length > 0) {
499
+ const redirectsContent = generateNetlifyRedirects(redirects);
500
+ const redirectsPath = path.join(absClient, "_redirects");
501
+ let existing = "";
502
+ try {
503
+ existing = await fs.readFile(redirectsPath, "utf8");
504
+ } catch {
505
+ }
506
+ await fs.writeFile(redirectsPath, redirectsContent + existing, "utf8");
507
+ console.log(` Generated _redirects (${redirects.length} rules)`);
499
508
  }
500
- await fs.writeFile(redirectsPath, redirectsContent + existing, "utf8");
501
- console.log(` Generated _redirects (${redirects.length} rules)`);
502
509
  }
503
510
  return {
504
511
  rendered,
@@ -620,6 +627,7 @@ function discoverInternalLinks(html) {
620
627
  while ((m = hrefRe.exec(html)) !== null) {
621
628
  const raw = (m[1] ?? m[2] ?? "").trim();
622
629
  if (!raw) continue;
630
+ if (raw.includes("[object Object]") || raw.includes("undefined") || raw.includes("/null")) continue;
623
631
  if (raw.startsWith("mailto:") || raw.startsWith("tel:") || raw.startsWith("javascript:") || raw.startsWith("#")) {
624
632
  continue;
625
633
  }
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-BkTA1QZ6.cjs");
4
+ const prerender = require("../prerender-DQYBvxc_.cjs");
5
5
  function installFetchTimeout() {
6
6
  const ms = Number(process.env.BLOX_SSG_FETCH_TIMEOUT_MS) || 2e4;
7
7
  const original = globalThis.fetch;
@@ -45,12 +45,20 @@ async function main() {
45
45
  const extraPaths = [];
46
46
  let crawl = false;
47
47
  let mode = "production";
48
+ let shardIndex = 0;
49
+ let shardTotal = 1;
48
50
  const excludePaths = ["/_blox_preview"];
49
51
  for (const a of argv) {
50
52
  if (a === "--crawl") {
51
53
  crawl = true;
52
54
  } else if (a === "--no-crawl") {
53
55
  crawl = false;
56
+ } else if (a.startsWith("--shard=")) {
57
+ const [i, n] = a.slice("--shard=".length).split("/").map(Number);
58
+ if (Number.isInteger(i) && Number.isInteger(n) && n > 0 && i >= 0 && i < n) {
59
+ shardIndex = i;
60
+ shardTotal = n;
61
+ }
54
62
  } else if (a === "--help" || a === "-h") {
55
63
  console.log(`
56
64
  blox-ssg — Static Site Generator for @bagelink/blox
@@ -129,6 +137,12 @@ Environment:
129
137
  for (const p of extraPaths) {
130
138
  if (!paths.includes(p)) paths.push(p);
131
139
  }
140
+ if (shardTotal > 1) {
141
+ paths = [...paths].sort();
142
+ paths = paths.filter((_, idx) => idx % shardTotal === shardIndex);
143
+ crawl = false;
144
+ console.log(` Shard ${shardIndex + 1}/${shardTotal}: ${paths.length} paths`);
145
+ }
132
146
  const startTime = Date.now();
133
147
  try {
134
148
  const result = await prerender.prerender({
@@ -143,6 +157,9 @@ Environment:
143
157
  // staging box. Defaults conservative; bump for beefy prod builds.
144
158
  concurrency: Number(process.env.BLOX_SSG_CONCURRENCY) || 4,
145
159
  mode: "file",
160
+ // Only shard 0 writes shared, whole-site assets (sitemap/robots/_redirects)
161
+ // so parallel shards don't race/clobber them.
162
+ writeSharedAssets: shardIndex === 0,
146
163
  website,
147
164
  websiteId,
148
165
  redirects,
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-wIuYNW6N.js";
3
+ import { p as polyfillBloxSsgGlobals, f as fetchCmsSiteData, a as prerender } from "../prerender-BTRIOCtF.js";
4
4
  function installFetchTimeout() {
5
5
  const ms = Number(process.env.BLOX_SSG_FETCH_TIMEOUT_MS) || 2e4;
6
6
  const original = globalThis.fetch;
@@ -44,12 +44,20 @@ async function main() {
44
44
  const extraPaths = [];
45
45
  let crawl = false;
46
46
  let mode = "production";
47
+ let shardIndex = 0;
48
+ let shardTotal = 1;
47
49
  const excludePaths = ["/_blox_preview"];
48
50
  for (const a of argv) {
49
51
  if (a === "--crawl") {
50
52
  crawl = true;
51
53
  } else if (a === "--no-crawl") {
52
54
  crawl = false;
55
+ } else if (a.startsWith("--shard=")) {
56
+ const [i, n] = a.slice("--shard=".length).split("/").map(Number);
57
+ if (Number.isInteger(i) && Number.isInteger(n) && n > 0 && i >= 0 && i < n) {
58
+ shardIndex = i;
59
+ shardTotal = n;
60
+ }
53
61
  } else if (a === "--help" || a === "-h") {
54
62
  console.log(`
55
63
  blox-ssg — Static Site Generator for @bagelink/blox
@@ -128,6 +136,12 @@ Environment:
128
136
  for (const p of extraPaths) {
129
137
  if (!paths.includes(p)) paths.push(p);
130
138
  }
139
+ if (shardTotal > 1) {
140
+ paths = [...paths].sort();
141
+ paths = paths.filter((_, idx) => idx % shardTotal === shardIndex);
142
+ crawl = false;
143
+ console.log(` Shard ${shardIndex + 1}/${shardTotal}: ${paths.length} paths`);
144
+ }
131
145
  const startTime = Date.now();
132
146
  try {
133
147
  const result = await prerender({
@@ -142,6 +156,9 @@ Environment:
142
156
  // staging box. Defaults conservative; bump for beefy prod builds.
143
157
  concurrency: Number(process.env.BLOX_SSG_CONCURRENCY) || 4,
144
158
  mode: "file",
159
+ // Only shard 0 writes shared, whole-site assets (sitemap/robots/_redirects)
160
+ // so parallel shards don't race/clobber them.
161
+ writeSharedAssets: shardIndex === 0,
145
162
  website,
146
163
  websiteId,
147
164
  redirects,
@@ -22,7 +22,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
22
22
  mod
23
23
  ));
24
24
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
25
- const prerender = require("../prerender-BkTA1QZ6.cjs");
25
+ const prerender = require("../prerender-DQYBvxc_.cjs");
26
26
  const ssg_client = require("./client.cjs");
27
27
  const pinia = require("pinia");
28
28
  const vue = require("vue");
@@ -1,5 +1,5 @@
1
- import { b as buildPageHead } from "../prerender-wIuYNW6N.js";
2
- import { c, d, f, g, e, h, i, p, a } from "../prerender-wIuYNW6N.js";
1
+ import { b as buildPageHead } from "../prerender-BTRIOCtF.js";
2
+ import { c, d, f, g, e, h, i, p, a } from "../prerender-BTRIOCtF.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";
@@ -12,6 +12,12 @@ export interface PrerenderOptions {
12
12
  maxPages?: number;
13
13
  /** How many pages to render concurrently (default 6). */
14
14
  concurrency?: number;
15
+ /**
16
+ * Write whole-site assets (sitemap.xml, robots.txt, _redirects) after render.
17
+ * Defaults true. Set false on all-but-one shard when running parallel shards
18
+ * against the same `dist`, so they don't race/clobber these single files.
19
+ */
20
+ writeSharedAssets?: boolean;
15
21
  mode?: 'dir' | 'file';
16
22
  /** Website settings for SEO injection. */
17
23
  website?: WebsiteRead | null;
@@ -61,6 +67,6 @@ export interface PrerenderResult {
61
67
  * - Generates sitemap.xml, robots.txt, and _redirects post-render.
62
68
  * - Strips hardcoded SEO tags from template and injects per-page equivalents.
63
69
  */
64
- export declare function prerender({ root, clientOutDir, serverEntry, paths, crawl, excludePaths, failFast, maxPages, concurrency, mode, website, websiteId, redirects, collections, }?: PrerenderOptions): Promise<PrerenderResult>;
70
+ export declare function prerender({ root, clientOutDir, serverEntry, paths, crawl, excludePaths, failFast, maxPages, concurrency, writeSharedAssets, mode, website, websiteId, redirects, collections, }?: PrerenderOptions): Promise<PrerenderResult>;
65
71
  export {};
66
72
  //# sourceMappingURL=prerender.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prerender.d.ts","sourceRoot":"","sources":["../../src/ssg/prerender.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAe1C,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAA;AAEhE,MAAM,WAAW,gBAAgB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAA;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACrB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kDAAkD;IAClD,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;IAC3B,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAA;IACzC,QAAQ,EAAE,MAAM,CAAA;IAChB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB;AAMD,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IAC7D,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,SAAS,CAAC,EAC/B,IAAoB,EACpB,YAA4B,EAC5B,WAA0C,EAC1C,KAAU,EACV,KAAY,EACZ,YAAiB,EACjB,QAAgB,EAChB,QAAe,EACf,WAAe,EACf,IAAY,EACZ,OAAc,EACd,SAAc,EACd,SAAc,EACd,WAAgB,GAChB,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CAiKlD"}
1
+ {"version":3,"file":"prerender.d.ts","sourceRoot":"","sources":["../../src/ssg/prerender.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAe1C,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAA;AAEhE,MAAM,WAAW,gBAAgB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAA;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACrB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kDAAkD;IAClD,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;IAC3B,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAA;IACzC,QAAQ,EAAE,MAAM,CAAA;IAChB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB;AAMD,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IAC7D,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,SAAS,CAAC,EAC/B,IAAoB,EACpB,YAA4B,EAC5B,WAA0C,EAC1C,KAAU,EACV,KAAY,EACZ,YAAiB,EACjB,QAAgB,EAChB,QAAe,EACf,WAAe,EACf,iBAAwB,EACxB,IAAY,EACZ,OAAc,EACd,SAAc,EACd,SAAc,EACd,WAAgB,GAChB,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CAmKlD"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/blox",
3
3
  "type": "module",
4
- "version": "1.15.218",
4
+ "version": "1.15.222",
5
5
  "description": "Blox page builder library for drag-and-drop page building and static data management",
6
6
  "author": {
7
7
  "name": "Bagel Studio",