@brightsideoy/kama 0.1.0-alpha.67 → 0.1.0-alpha.68

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/index.js CHANGED
@@ -241,7 +241,7 @@ var j = {
241
241
  "]": "%5D",
242
242
  "{": "%7B",
243
243
  "}": "%7D"
244
- }, oe = (e) => e.replace(/[!,[\]{}]/g, (e) => j[e]), se = class e {
244
+ }, oe = (e) => e.replace(/[!,[\]{}]/g, (e) => j[e]), M = class e {
245
245
  constructor(t, n) {
246
246
  this.docStart = null, this.docEnd = !1, this.yaml = Object.assign({}, e.defaultYaml, t), this.tags = Object.assign({}, e.defaultTags, n);
247
247
  }
@@ -319,37 +319,37 @@ var j = {
319
319
  return t.join("\n");
320
320
  }
321
321
  };
322
- se.defaultYaml = {
322
+ M.defaultYaml = {
323
323
  explicit: !1,
324
324
  version: "1.2"
325
- }, se.defaultTags = { "!!": "tag:yaml.org,2002:" };
325
+ }, M.defaultTags = { "!!": "tag:yaml.org,2002:" };
326
326
  //#endregion
327
327
  //#region node_modules/yaml/browser/dist/doc/anchors.js
328
- function ce(e) {
328
+ function se(e) {
329
329
  if (/[\x00-\x19\s,[\]{}]/.test(e)) {
330
330
  let t = `Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;
331
331
  throw Error(t);
332
332
  }
333
333
  return !0;
334
334
  }
335
- function le(e) {
335
+ function ce(e) {
336
336
  let t = /* @__PURE__ */ new Set();
337
337
  return k(e, { Value(e, n) {
338
338
  n.anchor && t.add(n.anchor);
339
339
  } }), t;
340
340
  }
341
- function ue(e, t) {
341
+ function le(e, t) {
342
342
  for (let n = 1;; ++n) {
343
343
  let r = `${e}${n}`;
344
344
  if (!t.has(r)) return r;
345
345
  }
346
346
  }
347
- function M(e, t) {
347
+ function ue(e, t) {
348
348
  let n = [], r = /* @__PURE__ */ new Map(), i = null;
349
349
  return {
350
350
  onAnchor: (r) => {
351
- n.push(r), i ??= le(e);
352
- let a = ue(t, i);
351
+ n.push(r), i ??= ce(e);
352
+ let a = le(t, i);
353
353
  return i.add(a), a;
354
354
  },
355
355
  setAnchors: () => {
@@ -409,7 +409,7 @@ function P(e, t, n) {
409
409
  }
410
410
  //#endregion
411
411
  //#region node_modules/yaml/browser/dist/nodes/Node.js
412
- var F = class {
412
+ var de = class {
413
413
  constructor(e) {
414
414
  Object.defineProperty(this, _, { value: e });
415
415
  }
@@ -430,7 +430,7 @@ var F = class {
430
430
  if (typeof r == "function") for (let { count: e, res: t } of a.anchors.values()) r(t, e);
431
431
  return typeof i == "function" ? N(i, { "": o }, "", o) : o;
432
432
  }
433
- }, de = class extends F {
433
+ }, fe = class extends de {
434
434
  constructor(e) {
435
435
  super(d), this.source = e, Object.defineProperty(this, "tag", { set() {
436
436
  throw Error("Alias nodes cannot have tags");
@@ -459,13 +459,13 @@ var F = class {
459
459
  let o = n.get(a);
460
460
  /* istanbul ignore if */
461
461
  if (o ||= (P(a, null, t), n.get(a)), o?.res === void 0) throw ReferenceError("This should not happen: Alias anchor was not resolved?");
462
- if (i >= 0 && (o.count += 1, o.aliasCount === 0 && (o.aliasCount = fe(r, a, n)), o.count * o.aliasCount > i)) throw ReferenceError("Excessive alias count indicates a resource exhaustion attack");
462
+ if (i >= 0 && (o.count += 1, o.aliasCount === 0 && (o.aliasCount = pe(r, a, n)), o.count * o.aliasCount > i)) throw ReferenceError("Excessive alias count indicates a resource exhaustion attack");
463
463
  return o.res;
464
464
  }
465
465
  toString(e, t, n) {
466
466
  let r = `*${this.source}`;
467
467
  if (e) {
468
- if (ce(this.source), e.options.verifyAliasOrder && !e.anchors.has(this.source)) {
468
+ if (se(this.source), e.options.verifyAliasOrder && !e.anchors.has(this.source)) {
469
469
  let e = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;
470
470
  throw Error(e);
471
471
  }
@@ -474,7 +474,7 @@ var F = class {
474
474
  return r;
475
475
  }
476
476
  };
477
- function fe(e, t, n) {
477
+ function pe(e, t, n) {
478
478
  if (v(t)) {
479
479
  let r = t.resolve(e), i = n && r && n.get(r);
480
480
  return i ? i.count * i.aliasCount : 0;
@@ -482,20 +482,20 @@ function fe(e, t, n) {
482
482
  if (w(t)) {
483
483
  let r = 0;
484
484
  for (let i of t.items) {
485
- let t = fe(e, i, n);
485
+ let t = pe(e, i, n);
486
486
  t > r && (r = t);
487
487
  }
488
488
  return r;
489
489
  }
490
490
  if (x(t)) {
491
- let r = fe(e, t.key, n), i = fe(e, t.value, n);
491
+ let r = pe(e, t.key, n), i = pe(e, t.value, n);
492
492
  return Math.max(r, i);
493
493
  }
494
494
  return 1;
495
495
  }
496
496
  //#endregion
497
497
  //#region node_modules/yaml/browser/dist/nodes/Scalar.js
498
- var pe = (e) => !e || typeof e != "function" && typeof e != "object", I = class extends F {
498
+ var me = (e) => !e || typeof e != "function" && typeof e != "object", F = class extends de {
499
499
  constructor(e) {
500
500
  super(h), this.value = e;
501
501
  }
@@ -506,11 +506,11 @@ var pe = (e) => !e || typeof e != "function" && typeof e != "object", I = class
506
506
  return String(this.value);
507
507
  }
508
508
  };
509
- I.BLOCK_FOLDED = "BLOCK_FOLDED", I.BLOCK_LITERAL = "BLOCK_LITERAL", I.PLAIN = "PLAIN", I.QUOTE_DOUBLE = "QUOTE_DOUBLE", I.QUOTE_SINGLE = "QUOTE_SINGLE";
509
+ F.BLOCK_FOLDED = "BLOCK_FOLDED", F.BLOCK_LITERAL = "BLOCK_LITERAL", F.PLAIN = "PLAIN", F.QUOTE_DOUBLE = "QUOTE_DOUBLE", F.QUOTE_SINGLE = "QUOTE_SINGLE";
510
510
  //#endregion
511
511
  //#region node_modules/yaml/browser/dist/doc/createNode.js
512
- var me = "tag:yaml.org,2002:";
513
- function he(e, t, n) {
512
+ var he = "tag:yaml.org,2002:";
513
+ function I(e, t, n) {
514
514
  if (t) {
515
515
  let e = n.filter((e) => e.tag === t), r = e.find((e) => !e.format) ?? e[0];
516
516
  if (!r) throw Error(`Tag ${t} not found`);
@@ -518,7 +518,7 @@ function he(e, t, n) {
518
518
  }
519
519
  return n.find((t) => t.identify?.(e) && !t.format);
520
520
  }
521
- function ge(e, t, n) {
521
+ function L(e, t, n) {
522
522
  if (y(e) && (e = e.contents), T(e)) return e;
523
523
  if (x(e)) {
524
524
  let t = n.schema[p].createNode?.(n.schema, null, n);
@@ -527,28 +527,28 @@ function ge(e, t, n) {
527
527
  (e instanceof String || e instanceof Number || e instanceof Boolean || typeof BigInt < "u" && e instanceof BigInt) && (e = e.valueOf());
528
528
  let { aliasDuplicateObjects: r, onAnchor: i, onTagObj: a, schema: o, sourceObjects: s } = n, c;
529
529
  if (r && e && typeof e == "object") {
530
- if (c = s.get(e), c) return c.anchor ?? (c.anchor = i(e)), new de(c.anchor);
530
+ if (c = s.get(e), c) return c.anchor ?? (c.anchor = i(e)), new fe(c.anchor);
531
531
  c = {
532
532
  anchor: null,
533
533
  node: null
534
534
  }, s.set(e, c);
535
535
  }
536
- t?.startsWith("!!") && (t = me + t.slice(2));
537
- let l = he(e, t, o.tags);
536
+ t?.startsWith("!!") && (t = he + t.slice(2));
537
+ let l = I(e, t, o.tags);
538
538
  if (!l) {
539
539
  if (e && typeof e.toJSON == "function" && (e = e.toJSON()), !e || typeof e != "object") {
540
- let t = new I(e);
540
+ let t = new F(e);
541
541
  return c && (c.node = t), t;
542
542
  }
543
543
  l = e instanceof Map ? o[p] : Symbol.iterator in Object(e) ? o[g] : o[p];
544
544
  }
545
545
  a && (a(l), delete n.onTagObj);
546
- let u = l?.createNode ? l.createNode(n.schema, e, n) : typeof l?.nodeClass?.from == "function" ? l.nodeClass.from(n.schema, e, n) : new I(e);
546
+ let u = l?.createNode ? l.createNode(n.schema, e, n) : typeof l?.nodeClass?.from == "function" ? l.nodeClass.from(n.schema, e, n) : new F(e);
547
547
  return t ? u.tag = t : l.default || (u.tag = l.tag), c && (c.node = u), u;
548
548
  }
549
549
  //#endregion
550
550
  //#region node_modules/yaml/browser/dist/nodes/Collection.js
551
- function _e(e, t, n) {
551
+ function ge(e, t, n) {
552
552
  let r = n;
553
553
  for (let e = t.length - 1; e >= 0; --e) {
554
554
  let n = t[e];
@@ -557,7 +557,7 @@ function _e(e, t, n) {
557
557
  e[n] = r, r = e;
558
558
  } else r = /* @__PURE__ */ new Map([[n, r]]);
559
559
  }
560
- return ge(r, void 0, {
560
+ return L(r, void 0, {
561
561
  aliasDuplicateObjects: !1,
562
562
  keepUndefined: !1,
563
563
  onAnchor: () => {
@@ -567,7 +567,7 @@ function _e(e, t, n) {
567
567
  sourceObjects: /* @__PURE__ */ new Map()
568
568
  });
569
569
  }
570
- var ve = (e) => e == null || typeof e == "object" && !!e[Symbol.iterator]().next().done, ye = class extends F {
570
+ var _e = (e) => e == null || typeof e == "object" && !!e[Symbol.iterator]().next().done, ve = class extends de {
571
571
  constructor(e, t) {
572
572
  super(e), Object.defineProperty(this, "schema", {
573
573
  value: t,
@@ -581,11 +581,11 @@ var ve = (e) => e == null || typeof e == "object" && !!e[Symbol.iterator]().next
581
581
  return e && (t.schema = e), t.items = t.items.map((t) => T(t) || x(t) ? t.clone(e) : t), this.range && (t.range = this.range.slice()), t;
582
582
  }
583
583
  addIn(e, t) {
584
- if (ve(e)) this.add(t);
584
+ if (_e(e)) this.add(t);
585
585
  else {
586
586
  let [n, ...r] = e, i = this.get(n, !0);
587
587
  if (w(i)) i.addIn(r, t);
588
- else if (i === void 0 && this.schema) this.set(n, _e(this.schema, r, t));
588
+ else if (i === void 0 && this.schema) this.set(n, ge(this.schema, r, t));
589
589
  else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`);
590
590
  }
591
591
  }
@@ -619,16 +619,16 @@ var ve = (e) => e == null || typeof e == "object" && !!e[Symbol.iterator]().next
619
619
  else {
620
620
  let e = this.get(n, !0);
621
621
  if (w(e)) e.setIn(r, t);
622
- else if (e === void 0 && this.schema) this.set(n, _e(this.schema, r, t));
622
+ else if (e === void 0 && this.schema) this.set(n, ge(this.schema, r, t));
623
623
  else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`);
624
624
  }
625
625
  }
626
- }, be = (e) => e.replace(/^(?!$)(?: $)?/gm, "#");
627
- function L(e, t) {
626
+ }, ye = (e) => e.replace(/^(?!$)(?: $)?/gm, "#");
627
+ function R(e, t) {
628
628
  return /^\n+$/.test(e) ? e.substring(1) : t ? e.replace(/^(?! *$)/gm, t) : e;
629
629
  }
630
- var xe = (e, t, n) => e.endsWith("\n") ? L(n, t) : n.includes("\n") ? "\n" + L(n, t) : (e.endsWith(" ") ? "" : " ") + n, Se = "flow", Ce = "block", we = "quoted";
631
- function Te(e, t, n = "flow", { indentAtStart: r, lineWidth: i = 80, minContentWidth: a = 20, onFold: o, onOverflow: s } = {}) {
630
+ var be = (e, t, n) => e.endsWith("\n") ? R(n, t) : n.includes("\n") ? "\n" + R(n, t) : (e.endsWith(" ") ? "" : " ") + n, xe = "flow", Se = "block", Ce = "quoted";
631
+ function we(e, t, n = "flow", { indentAtStart: r, lineWidth: i = 80, minContentWidth: a = 20, onFold: o, onOverflow: s } = {}) {
632
632
  if (!i || i < 0) return e;
633
633
  i < a && (a = 0);
634
634
  let c = Math.max(1 + a, 1 + i - t.length);
@@ -636,7 +636,7 @@ function Te(e, t, n = "flow", { indentAtStart: r, lineWidth: i = 80, minContentW
636
636
  let l = [], u = {}, d = i - t.length;
637
637
  typeof r == "number" && (r > i - Math.max(2, a) ? l.push(0) : d = i - r);
638
638
  let f, p, m = !1, h = -1, g = -1, _ = -1;
639
- n === "block" && (h = Ee(e, h, t.length), h !== -1 && (d = h + c));
639
+ n === "block" && (h = Te(e, h, t.length), h !== -1 && (d = h + c));
640
640
  for (let r; r = e[h += 1];) {
641
641
  if (n === "quoted" && r === "\\") {
642
642
  switch (g = h, e[h + 1]) {
@@ -653,7 +653,7 @@ function Te(e, t, n = "flow", { indentAtStart: r, lineWidth: i = 80, minContentW
653
653
  }
654
654
  _ = h;
655
655
  }
656
- if (r === "\n") n === "block" && (h = Ee(e, h, t.length)), d = h + t.length + c, f = void 0;
656
+ if (r === "\n") n === "block" && (h = Te(e, h, t.length)), d = h + t.length + c, f = void 0;
657
657
  else {
658
658
  if (r === " " && p && p !== " " && p !== "\n" && p !== " ") {
659
659
  let t = e[h + 1];
@@ -680,7 +680,7 @@ function Te(e, t, n = "flow", { indentAtStart: r, lineWidth: i = 80, minContentW
680
680
  }
681
681
  return v;
682
682
  }
683
- function Ee(e, t, n) {
683
+ function Te(e, t, n) {
684
684
  let r = t, i = t + 1, a = e[i];
685
685
  for (; a === " " || a === " ";) if (t < i + n) a = e[++t];
686
686
  else {
@@ -693,12 +693,12 @@ function Ee(e, t, n) {
693
693
  }
694
694
  //#endregion
695
695
  //#region node_modules/yaml/browser/dist/stringify/stringifyString.js
696
- var De = (e, t) => ({
696
+ var Ee = (e, t) => ({
697
697
  indentAtStart: t ? e.indent.length : e.indentAtStart,
698
698
  lineWidth: e.options.lineWidth,
699
699
  minContentWidth: e.options.minContentWidth
700
- }), Oe = (e) => /^(%|---|\.\.\.)/m.test(e);
701
- function ke(e, t, n) {
700
+ }), De = (e) => /^(%|---|\.\.\.)/m.test(e);
701
+ function Oe(e, t, n) {
702
702
  if (!t || t < 0) return !1;
703
703
  let r = t - n, i = e.length;
704
704
  if (i <= r) return !1;
@@ -708,10 +708,10 @@ function ke(e, t, n) {
708
708
  }
709
709
  return !0;
710
710
  }
711
- function Ae(e, t) {
711
+ function ke(e, t) {
712
712
  let n = JSON.stringify(e);
713
713
  if (t.options.doubleQuotedAsJSON) return n;
714
- let { implicitKey: r } = t, i = t.options.doubleQuotedMinMultiLineLength, a = t.indent || (Oe(e) ? " " : ""), o = "", s = 0;
714
+ let { implicitKey: r } = t, i = t.options.doubleQuotedMinMultiLineLength, a = t.indent || (De(e) ? " " : ""), o = "", s = 0;
715
715
  for (let e = 0, t = n[e]; t; t = n[++e]) if (t === " " && n[e + 1] === "\\" && n[e + 2] === "n" && (o += n.slice(s, e) + "\\ ", e += 1, s = e, t = "\\"), t === "\\") switch (n[e + 1]) {
716
716
  case "u":
717
717
  {
@@ -756,32 +756,32 @@ function Ae(e, t) {
756
756
  break;
757
757
  default: e += 1;
758
758
  }
759
- return o = s ? o + n.slice(s) : n, r ? o : Te(o, a, we, De(t, !1));
759
+ return o = s ? o + n.slice(s) : n, r ? o : we(o, a, Ce, Ee(t, !1));
760
760
  }
761
- function je(e, t) {
762
- if (t.options.singleQuote === !1 || t.implicitKey && e.includes("\n") || /[ \t]\n|\n[ \t]/.test(e)) return Ae(e, t);
763
- let n = t.indent || (Oe(e) ? " " : ""), r = "'" + e.replace(/'/g, "''").replace(/\n+/g, `$&\n${n}`) + "'";
764
- return t.implicitKey ? r : Te(r, n, Se, De(t, !1));
761
+ function Ae(e, t) {
762
+ if (t.options.singleQuote === !1 || t.implicitKey && e.includes("\n") || /[ \t]\n|\n[ \t]/.test(e)) return ke(e, t);
763
+ let n = t.indent || (De(e) ? " " : ""), r = "'" + e.replace(/'/g, "''").replace(/\n+/g, `$&\n${n}`) + "'";
764
+ return t.implicitKey ? r : we(r, n, xe, Ee(t, !1));
765
765
  }
766
- function Me(e, t) {
766
+ function je(e, t) {
767
767
  let { singleQuote: n } = t.options, r;
768
- if (n === !1) r = Ae;
768
+ if (n === !1) r = ke;
769
769
  else {
770
770
  let t = e.includes("\""), i = e.includes("'");
771
- r = t && !i ? je : i && !t ? Ae : n ? je : Ae;
771
+ r = t && !i ? Ae : i && !t ? ke : n ? Ae : ke;
772
772
  }
773
773
  return r(e, t);
774
774
  }
775
- var Ne;
775
+ var Me;
776
776
  try {
777
- Ne = /* @__PURE__ */ RegExp("(^|(?<!\n))\n+(?!\n|$)", "g");
777
+ Me = /* @__PURE__ */ RegExp("(^|(?<!\n))\n+(?!\n|$)", "g");
778
778
  } catch {
779
- Ne = /\n+(?!\n|$)/g;
779
+ Me = /\n+(?!\n|$)/g;
780
780
  }
781
- function Pe({ comment: e, type: t, value: n }, r, i, a) {
781
+ function Ne({ comment: e, type: t, value: n }, r, i, a) {
782
782
  let { blockQuote: o, commentString: s, lineWidth: c } = r.options;
783
- if (!o || /\n[\t ]+$/.test(n)) return Me(n, r);
784
- let l = r.indent || (r.forceBlockIndent || Oe(n) ? " " : ""), u = o === "literal" ? !0 : o === "folded" || t === I.BLOCK_FOLDED ? !1 : t === I.BLOCK_LITERAL || !ke(n, c, l.length);
783
+ if (!o || /\n[\t ]+$/.test(n)) return je(n, r);
784
+ let l = r.indent || (r.forceBlockIndent || De(n) ? " " : ""), u = o === "literal" ? !0 : o === "folded" || t === F.BLOCK_FOLDED ? !1 : t === F.BLOCK_LITERAL || !Oe(n, c, l.length);
785
785
  if (!n) return u ? "|\n" : ">\n";
786
786
  let d, f;
787
787
  for (f = n.length; f > 0; --f) {
@@ -789,7 +789,7 @@ function Pe({ comment: e, type: t, value: n }, r, i, a) {
789
789
  if (e !== "\n" && e !== " " && e !== " ") break;
790
790
  }
791
791
  let p = n.substring(f), m = p.indexOf("\n");
792
- m === -1 ? d = "-" : n === p || m !== p.length - 1 ? (d = "+", a && a()) : d = "", p &&= (n = n.slice(0, -p.length), p[p.length - 1] === "\n" && (p = p.slice(0, -1)), p.replace(Ne, `$&${l}`));
792
+ m === -1 ? d = "-" : n === p || m !== p.length - 1 ? (d = "+", a && a()) : d = "", p &&= (n = n.slice(0, -p.length), p[p.length - 1] === "\n" && (p = p.slice(0, -1)), p.replace(Me, `$&${l}`));
793
793
  let h = !1, g, _ = -1;
794
794
  for (g = 0; g < n.length; ++g) {
795
795
  let e = n[g];
@@ -801,41 +801,41 @@ function Pe({ comment: e, type: t, value: n }, r, i, a) {
801
801
  v &&= (n = n.substring(v.length), v.replace(/\n+/g, `$&${l}`));
802
802
  let y = (h ? l ? "2" : "1" : "") + d;
803
803
  if (e && (y += " " + s(e.replace(/ ?[\r\n]+/g, " ")), i && i()), !u) {
804
- let e = n.replace(/\n+/g, "\n$&").replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g, "$1$2").replace(/\n+/g, `$&${l}`), i = !1, a = De(r, !0);
805
- o !== "folded" && t !== I.BLOCK_FOLDED && (a.onOverflow = () => {
804
+ let e = n.replace(/\n+/g, "\n$&").replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g, "$1$2").replace(/\n+/g, `$&${l}`), i = !1, a = Ee(r, !0);
805
+ o !== "folded" && t !== F.BLOCK_FOLDED && (a.onOverflow = () => {
806
806
  i = !0;
807
807
  });
808
- let s = Te(`${v}${e}${p}`, l, Ce, a);
808
+ let s = we(`${v}${e}${p}`, l, Se, a);
809
809
  if (!i) return `>${y}\n${l}${s}`;
810
810
  }
811
811
  return n = n.replace(/\n+/g, `$&${l}`), `|${y}\n${l}${v}${n}${p}`;
812
812
  }
813
- function Fe(e, t, n, r) {
813
+ function Pe(e, t, n, r) {
814
814
  let { type: i, value: a } = e, { actualString: o, implicitKey: s, indent: c, indentStep: l, inFlow: u } = t;
815
- if (s && a.includes("\n") || u && /[[\]{},]/.test(a)) return Me(a, t);
816
- if (/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(a)) return s || u || !a.includes("\n") ? Me(a, t) : Pe(e, t, n, r);
817
- if (!s && !u && i !== I.PLAIN && a.includes("\n")) return Pe(e, t, n, r);
818
- if (Oe(a)) {
819
- if (c === "") return t.forceBlockIndent = !0, Pe(e, t, n, r);
820
- if (s && c === l) return Me(a, t);
815
+ if (s && a.includes("\n") || u && /[[\]{},]/.test(a)) return je(a, t);
816
+ if (/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(a)) return s || u || !a.includes("\n") ? je(a, t) : Ne(e, t, n, r);
817
+ if (!s && !u && i !== F.PLAIN && a.includes("\n")) return Ne(e, t, n, r);
818
+ if (De(a)) {
819
+ if (c === "") return t.forceBlockIndent = !0, Ne(e, t, n, r);
820
+ if (s && c === l) return je(a, t);
821
821
  }
822
822
  let d = a.replace(/\n+/g, `$&\n${c}`);
823
823
  if (o) {
824
824
  let e = (e) => e.default && e.tag !== "tag:yaml.org,2002:str" && e.test?.test(d), { compat: n, tags: r } = t.doc.schema;
825
- if (r.some(e) || n?.some(e)) return Me(a, t);
825
+ if (r.some(e) || n?.some(e)) return je(a, t);
826
826
  }
827
- return s ? d : Te(d, c, Se, De(t, !1));
827
+ return s ? d : we(d, c, xe, Ee(t, !1));
828
828
  }
829
- function Ie(e, t, n, r) {
829
+ function Fe(e, t, n, r) {
830
830
  let { implicitKey: i, inFlow: a } = t, o = typeof e.value == "string" ? e : Object.assign({}, e, { value: String(e.value) }), { type: s } = e;
831
- s !== I.QUOTE_DOUBLE && /[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value) && (s = I.QUOTE_DOUBLE);
831
+ s !== F.QUOTE_DOUBLE && /[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value) && (s = F.QUOTE_DOUBLE);
832
832
  let c = (e) => {
833
833
  switch (e) {
834
- case I.BLOCK_FOLDED:
835
- case I.BLOCK_LITERAL: return i || a ? Me(o.value, t) : Pe(o, t, n, r);
836
- case I.QUOTE_DOUBLE: return Ae(o.value, t);
837
- case I.QUOTE_SINGLE: return je(o.value, t);
838
- case I.PLAIN: return Fe(o, t, n, r);
834
+ case F.BLOCK_FOLDED:
835
+ case F.BLOCK_LITERAL: return i || a ? je(o.value, t) : Ne(o, t, n, r);
836
+ case F.QUOTE_DOUBLE: return ke(o.value, t);
837
+ case F.QUOTE_SINGLE: return Ae(o.value, t);
838
+ case F.PLAIN: return Pe(o, t, n, r);
839
839
  default: return null;
840
840
  }
841
841
  }, l = c(s);
@@ -847,10 +847,10 @@ function Ie(e, t, n, r) {
847
847
  }
848
848
  //#endregion
849
849
  //#region node_modules/yaml/browser/dist/stringify/stringify.js
850
- function Le(e, t) {
850
+ function Ie(e, t) {
851
851
  let n = Object.assign({
852
852
  blockQuote: !0,
853
- commentString: be,
853
+ commentString: ye,
854
854
  defaultKeyType: null,
855
855
  defaultStringType: "PLAIN",
856
856
  directives: null,
@@ -887,7 +887,7 @@ function Le(e, t) {
887
887
  options: n
888
888
  };
889
889
  }
890
- function Re(e, t) {
890
+ function Le(e, t) {
891
891
  if (t.tag) {
892
892
  let n = e.filter((e) => e.tag === t.tag);
893
893
  if (n.length > 0) return n.find((e) => e.format === t.format) ?? n[0];
@@ -908,14 +908,14 @@ function Re(e, t) {
908
908
  }
909
909
  return n;
910
910
  }
911
- function ze(e, t, { anchors: n, doc: r }) {
911
+ function Re(e, t, { anchors: n, doc: r }) {
912
912
  if (!r.directives) return "";
913
913
  let i = [], a = (S(e) || w(e)) && e.anchor;
914
- a && ce(a) && (n.add(a), i.push(`&${a}`));
914
+ a && se(a) && (n.add(a), i.push(`&${a}`));
915
915
  let o = e.tag ?? (t.default ? null : t.tag);
916
916
  return o && i.push(r.directives.tagString(o)), i.join(" ");
917
917
  }
918
- function Be(e, t, n, r) {
918
+ function ze(e, t, n, r) {
919
919
  if (x(e)) return e.toString(t, n, r);
920
920
  if (v(e)) {
921
921
  if (t.doc.directives) return e.toString(t);
@@ -923,42 +923,42 @@ function Be(e, t, n, r) {
923
923
  t.resolvedAliases ? t.resolvedAliases.add(e) : t.resolvedAliases = /* @__PURE__ */ new Set([e]), e = e.resolve(t.doc);
924
924
  }
925
925
  let i, a = T(e) ? e : t.doc.createNode(e, { onTagObj: (e) => i = e });
926
- i ??= Re(t.doc.schema.tags, a);
927
- let o = ze(a, i, t);
926
+ i ??= Le(t.doc.schema.tags, a);
927
+ let o = Re(a, i, t);
928
928
  o.length > 0 && (t.indentAtStart = (t.indentAtStart ?? 0) + o.length + 1);
929
- let s = typeof i.stringify == "function" ? i.stringify(a, t, n, r) : S(a) ? Ie(a, t, n, r) : a.toString(t, n, r);
929
+ let s = typeof i.stringify == "function" ? i.stringify(a, t, n, r) : S(a) ? Fe(a, t, n, r) : a.toString(t, n, r);
930
930
  return o ? S(a) || s[0] === "{" || s[0] === "[" ? `${o} ${s}` : `${o}\n${t.indent}${s}` : s;
931
931
  }
932
932
  //#endregion
933
933
  //#region node_modules/yaml/browser/dist/stringify/stringifyPair.js
934
- function Ve({ key: e, value: t }, n, r, i) {
934
+ function Be({ key: e, value: t }, n, r, i) {
935
935
  let { allNullValues: a, doc: o, indent: s, indentStep: c, options: { commentString: l, indentSeq: u, simpleKeys: d } } = n, f = T(e) && e.comment || null;
936
936
  if (d) {
937
937
  if (f) throw Error("With simple keys, key nodes cannot have comments");
938
938
  if (w(e) || !T(e) && typeof e == "object") throw Error("With simple keys, collection cannot be used as a key value");
939
939
  }
940
- let p = !d && (!e || f && t == null && !n.inFlow || w(e) || (S(e) ? e.type === I.BLOCK_FOLDED || e.type === I.BLOCK_LITERAL : typeof e == "object"));
940
+ let p = !d && (!e || f && t == null && !n.inFlow || w(e) || (S(e) ? e.type === F.BLOCK_FOLDED || e.type === F.BLOCK_LITERAL : typeof e == "object"));
941
941
  n = Object.assign({}, n, {
942
942
  allNullValues: !1,
943
943
  implicitKey: !p && (d || !a),
944
944
  indent: s + c
945
945
  });
946
- let m = !1, h = !1, g = Be(e, n, () => m = !0, () => h = !0);
946
+ let m = !1, h = !1, g = ze(e, n, () => m = !0, () => h = !0);
947
947
  if (!p && !n.inFlow && g.length > 1024) {
948
948
  if (d) throw Error("With simple keys, single line scalar must not span more than 1024 characters");
949
949
  p = !0;
950
950
  }
951
951
  if (n.inFlow) {
952
952
  if (a || t == null) return m && r && r(), g === "" ? "?" : p ? `? ${g}` : g;
953
- } else if (a && !d || t == null && p) return g = `? ${g}`, f && !m ? g += xe(g, n.indent, l(f)) : h && i && i(), g;
954
- m && (f = null), p ? (f && (g += xe(g, n.indent, l(f))), g = `? ${g}\n${s}:`) : (g = `${g}:`, f && (g += xe(g, n.indent, l(f))));
953
+ } else if (a && !d || t == null && p) return g = `? ${g}`, f && !m ? g += be(g, n.indent, l(f)) : h && i && i(), g;
954
+ m && (f = null), p ? (f && (g += be(g, n.indent, l(f))), g = `? ${g}\n${s}:`) : (g = `${g}:`, f && (g += be(g, n.indent, l(f))));
955
955
  let _, v, y;
956
956
  T(t) ? (_ = !!t.spaceBefore, v = t.commentBefore, y = t.comment) : (_ = !1, v = null, y = null, t && typeof t == "object" && (t = o.createNode(t))), n.implicitKey = !1, !p && !f && S(t) && (n.indentAtStart = g.length + 1), h = !1, !u && c.length >= 2 && !n.inFlow && !p && C(t) && !t.flow && !t.tag && !t.anchor && (n.indent = n.indent.substring(2));
957
- let b = !1, x = Be(t, n, () => b = !0, () => h = !0), E = " ";
957
+ let b = !1, x = ze(t, n, () => b = !0, () => h = !0), E = " ";
958
958
  if (f || _ || v) {
959
959
  if (E = _ ? "\n" : "", v) {
960
960
  let e = l(v);
961
- E += `\n${L(e, n.indent)}`;
961
+ E += `\n${R(e, n.indent)}`;
962
962
  }
963
963
  x === "" && !n.inFlow ? E === "\n" && y && (E = "\n\n") : E += `\n${n.indent}`;
964
964
  } else if (!p && w(t)) {
@@ -972,31 +972,31 @@ function Ve({ key: e, value: t }, n, r, i) {
972
972
  t || (E = `\n${n.indent}`);
973
973
  }
974
974
  } else (x === "" || x[0] === "\n") && (E = "");
975
- return g += E + x, n.inFlow ? b && r && r() : y && !b ? g += xe(g, n.indent, l(y)) : h && i && i(), g;
975
+ return g += E + x, n.inFlow ? b && r && r() : y && !b ? g += be(g, n.indent, l(y)) : h && i && i(), g;
976
976
  }
977
977
  //#endregion
978
978
  //#region node_modules/yaml/browser/dist/log.js
979
- function He(e, t) {
979
+ function Ve(e, t) {
980
980
  (e === "debug" || e === "warn") && console.warn(t);
981
981
  }
982
982
  //#endregion
983
983
  //#region node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js
984
- var Ue = "<<", R = {
985
- identify: (e) => e === Ue || typeof e == "symbol" && e.description === Ue,
984
+ var He = "<<", z = {
985
+ identify: (e) => e === He || typeof e == "symbol" && e.description === He,
986
986
  default: "key",
987
987
  tag: "tag:yaml.org,2002:merge",
988
988
  test: /^<<$/,
989
- resolve: () => Object.assign(new I(Symbol(Ue)), { addToJSMap: Ge }),
990
- stringify: () => Ue
991
- }, We = (e, t) => (R.identify(t) || S(t) && (!t.type || t.type === I.PLAIN) && R.identify(t.value)) && e?.doc.schema.tags.some((e) => e.tag === R.tag && e.default);
992
- function Ge(e, t, n) {
993
- let r = qe(e, n);
994
- if (C(r)) for (let n of r.items) Ke(e, t, n);
995
- else if (Array.isArray(r)) for (let n of r) Ke(e, t, n);
996
- else Ke(e, t, r);
989
+ resolve: () => Object.assign(new F(Symbol(He)), { addToJSMap: We }),
990
+ stringify: () => He
991
+ }, Ue = (e, t) => (z.identify(t) || S(t) && (!t.type || t.type === F.PLAIN) && z.identify(t.value)) && e?.doc.schema.tags.some((e) => e.tag === z.tag && e.default);
992
+ function We(e, t, n) {
993
+ let r = Ke(e, n);
994
+ if (C(r)) for (let n of r.items) Ge(e, t, n);
995
+ else if (Array.isArray(r)) for (let n of r) Ge(e, t, n);
996
+ else Ge(e, t, r);
997
997
  }
998
- function Ke(e, t, n) {
999
- let r = qe(e, n);
998
+ function Ge(e, t, n) {
999
+ let r = Ke(e, n);
1000
1000
  if (!b(r)) throw Error("Merge sources must be maps or map aliases");
1001
1001
  let i = r.toJSON(null, e, Map);
1002
1002
  for (let [e, n] of i) t instanceof Map ? t.has(e) || t.set(e, n) : t instanceof Set ? t.add(e) : Object.prototype.hasOwnProperty.call(t, e) || Object.defineProperty(t, e, {
@@ -1007,20 +1007,20 @@ function Ke(e, t, n) {
1007
1007
  });
1008
1008
  return t;
1009
1009
  }
1010
- function qe(e, t) {
1010
+ function Ke(e, t) {
1011
1011
  return e && v(t) ? t.resolve(e.doc, e) : t;
1012
1012
  }
1013
1013
  //#endregion
1014
1014
  //#region node_modules/yaml/browser/dist/nodes/addPairToJSMap.js
1015
- function Je(e, t, { key: n, value: r }) {
1015
+ function qe(e, t, { key: n, value: r }) {
1016
1016
  if (T(n) && n.addToJSMap) n.addToJSMap(e, t, r);
1017
- else if (We(e, n)) Ge(e, t, r);
1017
+ else if (Ue(e, n)) We(e, t, r);
1018
1018
  else {
1019
1019
  let i = P(n, "", e);
1020
1020
  if (t instanceof Map) t.set(i, P(r, i, e));
1021
1021
  else if (t instanceof Set) t.add(i);
1022
1022
  else {
1023
- let a = Ye(n, i, e), o = P(r, a, e);
1023
+ let a = Je(n, i, e), o = P(r, a, e);
1024
1024
  a in t ? Object.defineProperty(t, a, {
1025
1025
  value: o,
1026
1026
  writable: !0,
@@ -1031,18 +1031,18 @@ function Je(e, t, { key: n, value: r }) {
1031
1031
  }
1032
1032
  return t;
1033
1033
  }
1034
- function Ye(e, t, n) {
1034
+ function Je(e, t, n) {
1035
1035
  if (t === null) return "";
1036
1036
  if (typeof t != "object") return String(t);
1037
1037
  if (T(e) && n?.doc) {
1038
- let t = Le(n.doc, {});
1038
+ let t = Ie(n.doc, {});
1039
1039
  t.anchors = /* @__PURE__ */ new Set();
1040
1040
  for (let e of n.anchors.keys()) t.anchors.add(e.anchor);
1041
1041
  t.inFlow = !0, t.inStringifyKey = !0;
1042
1042
  let r = e.toString(t);
1043
1043
  if (!n.mapKeyWarned) {
1044
1044
  let e = JSON.stringify(r);
1045
- e.length > 40 && (e = e.substring(0, 36) + "...\""), He(n.doc.options.logLevel, `Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`), n.mapKeyWarned = !0;
1045
+ e.length > 40 && (e = e.substring(0, 36) + "...\""), Ve(n.doc.options.logLevel, `Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`), n.mapKeyWarned = !0;
1046
1046
  }
1047
1047
  return r;
1048
1048
  }
@@ -1050,10 +1050,10 @@ function Ye(e, t, n) {
1050
1050
  }
1051
1051
  //#endregion
1052
1052
  //#region node_modules/yaml/browser/dist/nodes/Pair.js
1053
- function Xe(e, t, n) {
1054
- return new z(ge(e, void 0, n), ge(t, void 0, n));
1053
+ function Ye(e, t, n) {
1054
+ return new B(L(e, void 0, n), L(t, void 0, n));
1055
1055
  }
1056
- var z = class e {
1056
+ var B = class e {
1057
1057
  constructor(e, t = null) {
1058
1058
  Object.defineProperty(this, _, { value: m }), this.key = e, this.value = t;
1059
1059
  }
@@ -1062,32 +1062,32 @@ var z = class e {
1062
1062
  return T(n) && (n = n.clone(t)), T(r) && (r = r.clone(t)), new e(n, r);
1063
1063
  }
1064
1064
  toJSON(e, t) {
1065
- return Je(t, t?.mapAsMap ? /* @__PURE__ */ new Map() : {}, this);
1065
+ return qe(t, t?.mapAsMap ? /* @__PURE__ */ new Map() : {}, this);
1066
1066
  }
1067
1067
  toString(e, t, n) {
1068
- return e?.doc ? Ve(this, e, t, n) : JSON.stringify(this);
1068
+ return e?.doc ? Be(this, e, t, n) : JSON.stringify(this);
1069
1069
  }
1070
1070
  };
1071
1071
  //#endregion
1072
1072
  //#region node_modules/yaml/browser/dist/stringify/stringifyCollection.js
1073
- function Ze(e, t, n) {
1074
- return (t.inFlow ?? e.flow ? $e : Qe)(e, t, n);
1073
+ function Xe(e, t, n) {
1074
+ return (t.inFlow ?? e.flow ? Qe : Ze)(e, t, n);
1075
1075
  }
1076
- function Qe({ comment: e, items: t }, n, { blockItemPrefix: r, flowChars: i, itemIndent: a, onChompKeep: o, onComment: s }) {
1076
+ function Ze({ comment: e, items: t }, n, { blockItemPrefix: r, flowChars: i, itemIndent: a, onChompKeep: o, onComment: s }) {
1077
1077
  let { indent: c, options: { commentString: l } } = n, u = Object.assign({}, n, {
1078
1078
  indent: a,
1079
1079
  type: null
1080
1080
  }), d = !1, f = [];
1081
1081
  for (let e = 0; e < t.length; ++e) {
1082
1082
  let i = t[e], o = null;
1083
- if (T(i)) !d && i.spaceBefore && f.push(""), et(n, f, i.commentBefore, d), i.comment && (o = i.comment);
1083
+ if (T(i)) !d && i.spaceBefore && f.push(""), $e(n, f, i.commentBefore, d), i.comment && (o = i.comment);
1084
1084
  else if (x(i)) {
1085
1085
  let e = T(i.key) ? i.key : null;
1086
- e && (!d && e.spaceBefore && f.push(""), et(n, f, e.commentBefore, d));
1086
+ e && (!d && e.spaceBefore && f.push(""), $e(n, f, e.commentBefore, d));
1087
1087
  }
1088
1088
  d = !1;
1089
- let s = Be(i, u, () => o = null, () => d = !0);
1090
- o && (s += xe(s, a, l(o))), d && o && (d = !1), f.push(r + s);
1089
+ let s = ze(i, u, () => o = null, () => d = !0);
1090
+ o && (s += be(s, a, l(o))), d && o && (d = !1), f.push(r + s);
1091
1091
  }
1092
1092
  let p;
1093
1093
  if (f.length === 0) p = i.start + i.end;
@@ -1098,9 +1098,9 @@ function Qe({ comment: e, items: t }, n, { blockItemPrefix: r, flowChars: i, ite
1098
1098
  p += t ? `\n${c}${t}` : "\n";
1099
1099
  }
1100
1100
  }
1101
- return e ? (p += "\n" + L(l(e), c), s && s()) : d && o && o(), p;
1101
+ return e ? (p += "\n" + R(l(e), c), s && s()) : d && o && o(), p;
1102
1102
  }
1103
- function $e({ items: e }, t, { flowChars: n, itemIndent: r }) {
1103
+ function Qe({ items: e }, t, { flowChars: n, itemIndent: r }) {
1104
1104
  let { indent: i, indentStep: a, flowCollectionPadding: o, options: { commentString: s } } = t;
1105
1105
  r += a;
1106
1106
  let c = Object.assign({}, t, {
@@ -1110,16 +1110,16 @@ function $e({ items: e }, t, { flowChars: n, itemIndent: r }) {
1110
1110
  }), l = !1, u = 0, d = [];
1111
1111
  for (let n = 0; n < e.length; ++n) {
1112
1112
  let i = e[n], a = null;
1113
- if (T(i)) i.spaceBefore && d.push(""), et(t, d, i.commentBefore, !1), i.comment && (a = i.comment);
1113
+ if (T(i)) i.spaceBefore && d.push(""), $e(t, d, i.commentBefore, !1), i.comment && (a = i.comment);
1114
1114
  else if (x(i)) {
1115
1115
  let e = T(i.key) ? i.key : null;
1116
- e && (e.spaceBefore && d.push(""), et(t, d, e.commentBefore, !1), e.comment && (l = !0));
1116
+ e && (e.spaceBefore && d.push(""), $e(t, d, e.commentBefore, !1), e.comment && (l = !0));
1117
1117
  let n = T(i.value) ? i.value : null;
1118
1118
  n ? (n.comment && (a = n.comment), n.commentBefore && (l = !0)) : i.value == null && e?.comment && (a = e.comment);
1119
1119
  }
1120
1120
  a && (l = !0);
1121
- let o = Be(i, c, () => a = null);
1122
- l ||= d.length > u || o.includes("\n"), n < e.length - 1 ? o += "," : t.options.trailingComma && (t.options.lineWidth > 0 && (l ||= d.reduce((e, t) => e + t.length + 2, 2) + (o.length + 2) > t.options.lineWidth), l && (o += ",")), a && (o += xe(o, r, s(a))), d.push(o), u = d.length;
1121
+ let o = ze(i, c, () => a = null);
1122
+ l ||= d.length > u || o.includes("\n"), n < e.length - 1 ? o += "," : t.options.trailingComma && (t.options.lineWidth > 0 && (l ||= d.reduce((e, t) => e + t.length + 2, 2) + (o.length + 2) > t.options.lineWidth), l && (o += ",")), a && (o += be(o, r, s(a))), d.push(o), u = d.length;
1123
1123
  }
1124
1124
  let { start: f, end: p } = n;
1125
1125
  if (d.length === 0) return f + p;
@@ -1134,19 +1134,19 @@ function $e({ items: e }, t, { flowChars: n, itemIndent: r }) {
1134
1134
  }
1135
1135
  return `${f}${o}${d.join(" ")}${o}${p}`;
1136
1136
  }
1137
- function et({ indent: e, options: { commentString: t } }, n, r, i) {
1137
+ function $e({ indent: e, options: { commentString: t } }, n, r, i) {
1138
1138
  if (r && i && (r = r.replace(/^\n+/, "")), r) {
1139
- let i = L(t(r), e);
1139
+ let i = R(t(r), e);
1140
1140
  n.push(i.trimStart());
1141
1141
  }
1142
1142
  }
1143
1143
  //#endregion
1144
1144
  //#region node_modules/yaml/browser/dist/nodes/YAMLMap.js
1145
- function tt(e, t) {
1145
+ function et(e, t) {
1146
1146
  let n = S(t) ? t.value : t;
1147
1147
  for (let r of e) if (x(r) && (r.key === t || r.key === n || S(r.key) && r.key.value === n)) return r;
1148
1148
  }
1149
- var B = class extends ye {
1149
+ var V = class extends ve {
1150
1150
  static get tagName() {
1151
1151
  return "tag:yaml.org,2002:map";
1152
1152
  }
@@ -1157,7 +1157,7 @@ var B = class extends ye {
1157
1157
  let { keepUndefined: r, replacer: i } = n, a = new this(e), o = (e, o) => {
1158
1158
  if (typeof i == "function") o = i.call(t, e, o);
1159
1159
  else if (Array.isArray(i) && !i.includes(e)) return;
1160
- (o !== void 0 || r) && a.items.push(Xe(e, o, n));
1160
+ (o !== void 0 || r) && a.items.push(Ye(e, o, n));
1161
1161
  };
1162
1162
  if (t instanceof Map) for (let [e, n] of t) o(e, n);
1163
1163
  else if (t && typeof t == "object") for (let e of Object.keys(t)) o(e, t[e]);
@@ -1165,40 +1165,40 @@ var B = class extends ye {
1165
1165
  }
1166
1166
  add(e, t) {
1167
1167
  let n;
1168
- n = x(e) ? e : !e || typeof e != "object" || !("key" in e) ? new z(e, e?.value) : new z(e.key, e.value);
1169
- let r = tt(this.items, n.key), i = this.schema?.sortMapEntries;
1168
+ n = x(e) ? e : !e || typeof e != "object" || !("key" in e) ? new B(e, e?.value) : new B(e.key, e.value);
1169
+ let r = et(this.items, n.key), i = this.schema?.sortMapEntries;
1170
1170
  if (r) {
1171
1171
  if (!t) throw Error(`Key ${n.key} already set`);
1172
- S(r.value) && pe(n.value) ? r.value.value = n.value : r.value = n.value;
1172
+ S(r.value) && me(n.value) ? r.value.value = n.value : r.value = n.value;
1173
1173
  } else if (i) {
1174
1174
  let e = this.items.findIndex((e) => i(n, e) < 0);
1175
1175
  e === -1 ? this.items.push(n) : this.items.splice(e, 0, n);
1176
1176
  } else this.items.push(n);
1177
1177
  }
1178
1178
  delete(e) {
1179
- let t = tt(this.items, e);
1179
+ let t = et(this.items, e);
1180
1180
  return t ? this.items.splice(this.items.indexOf(t), 1).length > 0 : !1;
1181
1181
  }
1182
1182
  get(e, t) {
1183
- let n = tt(this.items, e)?.value;
1183
+ let n = et(this.items, e)?.value;
1184
1184
  return (!t && S(n) ? n.value : n) ?? void 0;
1185
1185
  }
1186
1186
  has(e) {
1187
- return !!tt(this.items, e);
1187
+ return !!et(this.items, e);
1188
1188
  }
1189
1189
  set(e, t) {
1190
- this.add(new z(e, t), !0);
1190
+ this.add(new B(e, t), !0);
1191
1191
  }
1192
1192
  toJSON(e, t, n) {
1193
1193
  let r = n ? new n() : t?.mapAsMap ? /* @__PURE__ */ new Map() : {};
1194
1194
  t?.onCreate && t.onCreate(r);
1195
- for (let e of this.items) Je(t, r, e);
1195
+ for (let e of this.items) qe(t, r, e);
1196
1196
  return r;
1197
1197
  }
1198
1198
  toString(e, t, n) {
1199
1199
  if (!e) return JSON.stringify(this);
1200
1200
  for (let e of this.items) if (!x(e)) throw Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`);
1201
- return !e.allNullValues && this.hasAllNullValues(!1) && (e = Object.assign({}, e, { allNullValues: !0 })), Ze(this, e, {
1201
+ return !e.allNullValues && this.hasAllNullValues(!1) && (e = Object.assign({}, e, { allNullValues: !0 })), Xe(this, e, {
1202
1202
  blockItemPrefix: "",
1203
1203
  flowChars: {
1204
1204
  start: "{",
@@ -1209,16 +1209,16 @@ var B = class extends ye {
1209
1209
  onComment: t
1210
1210
  });
1211
1211
  }
1212
- }, nt = {
1212
+ }, tt = {
1213
1213
  collection: "map",
1214
1214
  default: !0,
1215
- nodeClass: B,
1215
+ nodeClass: V,
1216
1216
  tag: "tag:yaml.org,2002:map",
1217
1217
  resolve(e, t) {
1218
1218
  return b(e) || t("Expected a mapping for this tag"), e;
1219
1219
  },
1220
- createNode: (e, t, n) => B.from(e, t, n)
1221
- }, V = class extends ye {
1220
+ createNode: (e, t, n) => V.from(e, t, n)
1221
+ }, nt = class extends ve {
1222
1222
  static get tagName() {
1223
1223
  return "tag:yaml.org,2002:seq";
1224
1224
  }
@@ -1246,7 +1246,7 @@ var B = class extends ye {
1246
1246
  let n = rt(e);
1247
1247
  if (typeof n != "number") throw Error(`Expected a valid index, not ${e}.`);
1248
1248
  let r = this.items[n];
1249
- S(r) && pe(t) ? r.value = t : this.items[n] = t;
1249
+ S(r) && me(t) ? r.value = t : this.items[n] = t;
1250
1250
  }
1251
1251
  toJSON(e, t) {
1252
1252
  let n = [];
@@ -1256,7 +1256,7 @@ var B = class extends ye {
1256
1256
  return n;
1257
1257
  }
1258
1258
  toString(e, t, n) {
1259
- return e ? Ze(this, e, {
1259
+ return e ? Xe(this, e, {
1260
1260
  blockItemPrefix: "- ",
1261
1261
  flowChars: {
1262
1262
  start: "[",
@@ -1276,7 +1276,7 @@ var B = class extends ye {
1276
1276
  let n = t instanceof Set ? a : String(e++);
1277
1277
  a = r.call(t, n, a);
1278
1278
  }
1279
- i.items.push(ge(a, void 0, n));
1279
+ i.items.push(L(a, void 0, n));
1280
1280
  }
1281
1281
  }
1282
1282
  return i;
@@ -1291,34 +1291,34 @@ function rt(e) {
1291
1291
  var it = {
1292
1292
  collection: "seq",
1293
1293
  default: !0,
1294
- nodeClass: V,
1294
+ nodeClass: nt,
1295
1295
  tag: "tag:yaml.org,2002:seq",
1296
1296
  resolve(e, t) {
1297
1297
  return C(e) || t("Expected a sequence for this tag"), e;
1298
1298
  },
1299
- createNode: (e, t, n) => V.from(e, t, n)
1299
+ createNode: (e, t, n) => nt.from(e, t, n)
1300
1300
  }, at = {
1301
1301
  identify: (e) => typeof e == "string",
1302
1302
  default: !0,
1303
1303
  tag: "tag:yaml.org,2002:str",
1304
1304
  resolve: (e) => e,
1305
1305
  stringify(e, t, n, r) {
1306
- return t = Object.assign({ actualString: !0 }, t), Ie(e, t, n, r);
1306
+ return t = Object.assign({ actualString: !0 }, t), Fe(e, t, n, r);
1307
1307
  }
1308
1308
  }, ot = {
1309
1309
  identify: (e) => e == null,
1310
- createNode: () => new I(null),
1310
+ createNode: () => new F(null),
1311
1311
  default: !0,
1312
1312
  tag: "tag:yaml.org,2002:null",
1313
1313
  test: /^(?:~|[Nn]ull|NULL)?$/,
1314
- resolve: () => new I(null),
1314
+ resolve: () => new F(null),
1315
1315
  stringify: ({ source: e }, t) => typeof e == "string" && ot.test.test(e) ? e : t.options.nullStr
1316
1316
  }, st = {
1317
1317
  identify: (e) => typeof e == "boolean",
1318
1318
  default: !0,
1319
1319
  tag: "tag:yaml.org,2002:bool",
1320
1320
  test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,
1321
- resolve: (e) => new I(e[0] === "t" || e[0] === "T"),
1321
+ resolve: (e) => new F(e[0] === "t" || e[0] === "T"),
1322
1322
  stringify({ source: e, value: t }, n) {
1323
1323
  return e && st.test.test(e) && t === (e[0] === "t" || e[0] === "T") ? e : t ? n.options.trueStr : n.options.falseStr;
1324
1324
  }
@@ -1364,7 +1364,7 @@ var ct = {
1364
1364
  tag: "tag:yaml.org,2002:float",
1365
1365
  test: /^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,
1366
1366
  resolve(e) {
1367
- let t = new I(parseFloat(e)), n = e.indexOf(".");
1367
+ let t = new F(parseFloat(e)), n = e.indexOf(".");
1368
1368
  return n !== -1 && e[e.length - 1] === "0" && (t.minFractionDigits = e.length - n - 1), t;
1369
1369
  },
1370
1370
  stringify: H
@@ -1397,7 +1397,7 @@ var mt = {
1397
1397
  resolve: (e, t, n) => ft(e, 2, 16, n),
1398
1398
  stringify: (e) => pt(e, 16, "0x")
1399
1399
  }, _t = [
1400
- nt,
1400
+ tt,
1401
1401
  it,
1402
1402
  at,
1403
1403
  ot,
@@ -1424,7 +1424,7 @@ var yt = ({ value: e }) => JSON.stringify(e), bt = [
1424
1424
  },
1425
1425
  {
1426
1426
  identify: (e) => e == null,
1427
- createNode: () => new I(null),
1427
+ createNode: () => new F(null),
1428
1428
  default: !0,
1429
1429
  tag: "tag:yaml.org,2002:null",
1430
1430
  test: /^null$/,
@@ -1455,7 +1455,7 @@ var yt = ({ value: e }) => JSON.stringify(e), bt = [
1455
1455
  resolve: (e) => parseFloat(e),
1456
1456
  stringify: yt
1457
1457
  }
1458
- ], xt = [nt, it].concat(bt, {
1458
+ ], xt = [tt, it].concat(bt, {
1459
1459
  default: !0,
1460
1460
  tag: "",
1461
1461
  test: /^/,
@@ -1482,12 +1482,12 @@ var yt = ({ value: e }) => JSON.stringify(e), bt = [
1482
1482
  for (let t = 0; t < o.length; ++t) e += String.fromCharCode(o[t]);
1483
1483
  s = btoa(e);
1484
1484
  } else throw Error("This environment does not support writing binary tags; either Buffer or btoa is required");
1485
- if (t ??= I.BLOCK_LITERAL, t !== I.QUOTE_DOUBLE) {
1485
+ if (t ??= F.BLOCK_LITERAL, t !== F.QUOTE_DOUBLE) {
1486
1486
  let e = Math.max(r.options.lineWidth - r.indent.length, r.options.minContentWidth), n = Math.ceil(s.length / e), i = Array(n);
1487
1487
  for (let t = 0, r = 0; t < n; ++t, r += e) i[t] = s.substr(r, e);
1488
- s = i.join(t === I.BLOCK_LITERAL ? "\n" : " ");
1488
+ s = i.join(t === F.BLOCK_LITERAL ? "\n" : " ");
1489
1489
  }
1490
- return Ie({
1490
+ return Fe({
1491
1491
  comment: e,
1492
1492
  type: t,
1493
1493
  value: s
@@ -1502,21 +1502,21 @@ function Ct(e, t) {
1502
1502
  if (!x(r)) {
1503
1503
  if (b(r)) {
1504
1504
  r.items.length > 1 && t("Each pair must have its own sequence indicator");
1505
- let e = r.items[0] || new z(new I(null));
1505
+ let e = r.items[0] || new B(new F(null));
1506
1506
  if (r.commentBefore && (e.key.commentBefore = e.key.commentBefore ? `${r.commentBefore}\n${e.key.commentBefore}` : r.commentBefore), r.comment) {
1507
1507
  let t = e.value ?? e.key;
1508
1508
  t.comment = t.comment ? `${r.comment}\n${t.comment}` : r.comment;
1509
1509
  }
1510
1510
  r = e;
1511
1511
  }
1512
- e.items[n] = x(r) ? r : new z(r);
1512
+ e.items[n] = x(r) ? r : new B(r);
1513
1513
  }
1514
1514
  }
1515
1515
  else t("Expected a sequence for this tag");
1516
1516
  return e;
1517
1517
  }
1518
1518
  function wt(e, t, n) {
1519
- let { replacer: r } = n, i = new V(e);
1519
+ let { replacer: r } = n, i = new nt(e);
1520
1520
  i.tag = "tag:yaml.org,2002:pairs";
1521
1521
  let a = 0;
1522
1522
  if (t && Symbol.iterator in Object(t)) for (let e of t) {
@@ -1530,7 +1530,7 @@ function wt(e, t, n) {
1530
1530
  if (t.length === 1) o = t[0], s = e[o];
1531
1531
  else throw TypeError(`Expected tuple with one key, not ${t.length} keys`);
1532
1532
  } else o = e;
1533
- i.items.push(Xe(o, s, n));
1533
+ i.items.push(Ye(o, s, n));
1534
1534
  }
1535
1535
  return i;
1536
1536
  }
@@ -1540,9 +1540,9 @@ var Tt = {
1540
1540
  tag: "tag:yaml.org,2002:pairs",
1541
1541
  resolve: Ct,
1542
1542
  createNode: wt
1543
- }, Et = class e extends V {
1543
+ }, Et = class e extends nt {
1544
1544
  constructor() {
1545
- super(), this.add = B.prototype.add.bind(this), this.delete = B.prototype.delete.bind(this), this.get = B.prototype.get.bind(this), this.has = B.prototype.has.bind(this), this.set = B.prototype.set.bind(this), this.tag = e.tag;
1545
+ super(), this.add = V.prototype.add.bind(this), this.delete = V.prototype.delete.bind(this), this.get = V.prototype.get.bind(this), this.has = V.prototype.has.bind(this), this.set = V.prototype.set.bind(this), this.tag = e.tag;
1546
1546
  }
1547
1547
  toJSON(e, t) {
1548
1548
  if (!t) return super.toJSON(e);
@@ -1584,14 +1584,14 @@ var kt = {
1584
1584
  default: !0,
1585
1585
  tag: "tag:yaml.org,2002:bool",
1586
1586
  test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,
1587
- resolve: () => new I(!0),
1587
+ resolve: () => new F(!0),
1588
1588
  stringify: Ot
1589
1589
  }, At = {
1590
1590
  identify: (e) => e === !1,
1591
1591
  default: !0,
1592
1592
  tag: "tag:yaml.org,2002:bool",
1593
1593
  test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,
1594
- resolve: () => new I(!1),
1594
+ resolve: () => new F(!1),
1595
1595
  stringify: Ot
1596
1596
  }, jt = {
1597
1597
  identify: (e) => typeof e == "number",
@@ -1617,7 +1617,7 @@ var kt = {
1617
1617
  tag: "tag:yaml.org,2002:float",
1618
1618
  test: /^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,
1619
1619
  resolve(e) {
1620
- let t = new I(parseFloat(e.replace(/_/g, ""))), n = e.indexOf(".");
1620
+ let t = new F(parseFloat(e.replace(/_/g, ""))), n = e.indexOf(".");
1621
1621
  if (n !== -1) {
1622
1622
  let r = e.substring(n + 1).replace(/_/g, "");
1623
1623
  r[r.length - 1] === "0" && (t.minFractionDigits = r.length);
@@ -1683,22 +1683,22 @@ var Lt = {
1683
1683
  test: /^[-+]?0x[0-9a-fA-F_]+$/,
1684
1684
  resolve: (e, t, n) => Ft(e, 2, 16, n),
1685
1685
  stringify: (e) => It(e, 16, "0x")
1686
- }, Vt = class e extends B {
1686
+ }, Vt = class e extends V {
1687
1687
  constructor(t) {
1688
1688
  super(t), this.tag = e.tag;
1689
1689
  }
1690
1690
  add(e) {
1691
1691
  let t;
1692
- t = x(e) ? e : e && typeof e == "object" && "key" in e && "value" in e && e.value === null ? new z(e.key, null) : new z(e, null), tt(this.items, t.key) || this.items.push(t);
1692
+ t = x(e) ? e : e && typeof e == "object" && "key" in e && "value" in e && e.value === null ? new B(e.key, null) : new B(e, null), et(this.items, t.key) || this.items.push(t);
1693
1693
  }
1694
1694
  get(e, t) {
1695
- let n = tt(this.items, e);
1695
+ let n = et(this.items, e);
1696
1696
  return !t && x(n) ? S(n.key) ? n.key.value : n.key : n;
1697
1697
  }
1698
1698
  set(e, t) {
1699
1699
  if (typeof t != "boolean") throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);
1700
- let n = tt(this.items, e);
1701
- n && !t ? this.items.splice(this.items.indexOf(n), 1) : !n && t && this.items.push(new z(e));
1700
+ let n = et(this.items, e);
1701
+ n && !t ? this.items.splice(this.items.indexOf(n), 1) : !n && t && this.items.push(new B(e));
1702
1702
  }
1703
1703
  toJSON(e, t) {
1704
1704
  return super.toJSON(e, t, Set);
@@ -1710,7 +1710,7 @@ var Lt = {
1710
1710
  }
1711
1711
  static from(e, t, n) {
1712
1712
  let { replacer: r } = n, i = new this(e);
1713
- if (t && Symbol.iterator in Object(t)) for (let e of t) typeof r == "function" && (e = r.call(t, e, e)), i.items.push(Xe(e, null, n));
1713
+ if (t && Symbol.iterator in Object(t)) for (let e of t) typeof r == "function" && (e = r.call(t, e, e)), i.items.push(Ye(e, null, n));
1714
1714
  return i;
1715
1715
  }
1716
1716
  };
@@ -1778,7 +1778,7 @@ var Gt = {
1778
1778
  },
1779
1779
  stringify: ({ value: e }) => e?.toISOString().replace(/(T00:00:00)?\.000Z$/, "") ?? ""
1780
1780
  }, Jt = [
1781
- nt,
1781
+ tt,
1782
1782
  it,
1783
1783
  at,
1784
1784
  ot,
@@ -1792,7 +1792,7 @@ var Gt = {
1792
1792
  Mt,
1793
1793
  Nt,
1794
1794
  St,
1795
- R,
1795
+ z,
1796
1796
  Dt,
1797
1797
  Tt,
1798
1798
  Ht,
@@ -1802,7 +1802,7 @@ var Gt = {
1802
1802
  ], Yt = /* @__PURE__ */ new Map([
1803
1803
  ["core", _t],
1804
1804
  ["failsafe", [
1805
- nt,
1805
+ tt,
1806
1806
  it,
1807
1807
  at
1808
1808
  ]],
@@ -1820,8 +1820,8 @@ var Gt = {
1820
1820
  intHex: gt,
1821
1821
  intOct: mt,
1822
1822
  intTime: Gt,
1823
- map: nt,
1824
- merge: R,
1823
+ map: tt,
1824
+ merge: z,
1825
1825
  null: ot,
1826
1826
  omap: Dt,
1827
1827
  pairs: Tt,
@@ -1830,7 +1830,7 @@ var Gt = {
1830
1830
  timestamp: qt
1831
1831
  }, Zt = {
1832
1832
  "tag:yaml.org,2002:binary": St,
1833
- "tag:yaml.org,2002:merge": R,
1833
+ "tag:yaml.org,2002:merge": z,
1834
1834
  "tag:yaml.org,2002:omap": Dt,
1835
1835
  "tag:yaml.org,2002:pairs": Tt,
1836
1836
  "tag:yaml.org,2002:set": Ht,
@@ -1838,7 +1838,7 @@ var Gt = {
1838
1838
  };
1839
1839
  function Qt(e, t, n) {
1840
1840
  let r = Yt.get(t);
1841
- if (r && !e) return n && !r.includes(R) ? r.concat(R) : r.slice();
1841
+ if (r && !e) return n && !r.includes(z) ? r.concat(z) : r.slice();
1842
1842
  let i = r;
1843
1843
  if (!i) {
1844
1844
  if (Array.isArray(e)) i = [];
@@ -1849,7 +1849,7 @@ function Qt(e, t, n) {
1849
1849
  }
1850
1850
  if (Array.isArray(e)) for (let t of e) i = i.concat(t);
1851
1851
  else typeof e == "function" && (i = e(i.slice()));
1852
- return n && (i = i.concat(R)), i.reduce((e, t) => {
1852
+ return n && (i = i.concat(z)), i.reduce((e, t) => {
1853
1853
  let n = typeof t == "string" ? Xt[t] : t;
1854
1854
  if (!n) {
1855
1855
  let e = JSON.stringify(t), n = Object.keys(Xt).map((e) => JSON.stringify(e)).join(", ");
@@ -1862,7 +1862,7 @@ function Qt(e, t, n) {
1862
1862
  //#region node_modules/yaml/browser/dist/schema/Schema.js
1863
1863
  var $t = (e, t) => e.key < t.key ? -1 : +(e.key > t.key), en = class e {
1864
1864
  constructor({ compat: e, customTags: t, merge: n, resolveKnownTags: r, schema: i, sortMapEntries: a, toStringDefaults: o }) {
1865
- this.compat = Array.isArray(e) ? Qt(e, "compat") : e ? Qt(null, e) : null, this.name = typeof i == "string" && i || "core", this.knownTags = r ? Zt : {}, this.tags = Qt(t, this.name, n), this.toStringOptions = o ?? null, Object.defineProperty(this, p, { value: nt }), Object.defineProperty(this, h, { value: at }), Object.defineProperty(this, g, { value: it }), this.sortMapEntries = typeof a == "function" ? a : a === !0 ? $t : null;
1865
+ this.compat = Array.isArray(e) ? Qt(e, "compat") : e ? Qt(null, e) : null, this.name = typeof i == "string" && i || "core", this.knownTags = r ? Zt : {}, this.tags = Qt(t, this.name, n), this.toStringOptions = o ?? null, Object.defineProperty(this, p, { value: tt }), Object.defineProperty(this, h, { value: at }), Object.defineProperty(this, g, { value: it }), this.sortMapEntries = typeof a == "function" ? a : a === !0 ? $t : null;
1866
1866
  }
1867
1867
  clone() {
1868
1868
  let t = Object.create(e.prototype, Object.getOwnPropertyDescriptors(this));
@@ -1878,32 +1878,32 @@ function tn(e, t) {
1878
1878
  t ? (n.push(t), r = !0) : e.directives.docStart && (r = !0);
1879
1879
  }
1880
1880
  r && n.push("---");
1881
- let i = Le(e, t), { commentString: a } = i.options;
1881
+ let i = Ie(e, t), { commentString: a } = i.options;
1882
1882
  if (e.commentBefore) {
1883
1883
  n.length !== 1 && n.unshift("");
1884
1884
  let t = a(e.commentBefore);
1885
- n.unshift(L(t, ""));
1885
+ n.unshift(R(t, ""));
1886
1886
  }
1887
1887
  let o = !1, s = null;
1888
1888
  if (e.contents) {
1889
1889
  if (T(e.contents)) {
1890
1890
  if (e.contents.spaceBefore && r && n.push(""), e.contents.commentBefore) {
1891
1891
  let t = a(e.contents.commentBefore);
1892
- n.push(L(t, ""));
1892
+ n.push(R(t, ""));
1893
1893
  }
1894
1894
  i.forceBlockIndent = !!e.comment, s = e.contents.comment;
1895
1895
  }
1896
- let t = s ? void 0 : () => o = !0, c = Be(e.contents, i, () => s = null, t);
1897
- s && (c += xe(c, "", a(s))), (c[0] === "|" || c[0] === ">") && n[n.length - 1] === "---" ? n[n.length - 1] = `--- ${c}` : n.push(c);
1898
- } else n.push(Be(e.contents, i));
1896
+ let t = s ? void 0 : () => o = !0, c = ze(e.contents, i, () => s = null, t);
1897
+ s && (c += be(c, "", a(s))), (c[0] === "|" || c[0] === ">") && n[n.length - 1] === "---" ? n[n.length - 1] = `--- ${c}` : n.push(c);
1898
+ } else n.push(ze(e.contents, i));
1899
1899
  if (e.directives?.docEnd) {
1900
1900
  if (e.comment) {
1901
1901
  let t = a(e.comment);
1902
- t.includes("\n") ? (n.push("..."), n.push(L(t, ""))) : n.push(`... ${t}`);
1902
+ t.includes("\n") ? (n.push("..."), n.push(R(t, ""))) : n.push(`... ${t}`);
1903
1903
  } else n.push("...");
1904
1904
  } else {
1905
1905
  let t = e.comment;
1906
- t && o && (t = t.replace(/^\n+/, "")), t && ((!o || s) && n[n.length - 1] !== "" && n.push(""), n.push(L(a(t), "")));
1906
+ t && o && (t = t.replace(/^\n+/, "")), t && ((!o || s) && n[n.length - 1] !== "" && n.push(""), n.push(R(a(t), "")));
1907
1907
  }
1908
1908
  return n.join("\n") + "\n";
1909
1909
  }
@@ -1926,7 +1926,7 @@ var nn = class e {
1926
1926
  }, n);
1927
1927
  this.options = i;
1928
1928
  let { version: a } = i;
1929
- n?._directives ? (this.directives = n._directives.atDocument(), this.directives.yaml.explicit && (a = this.directives.yaml.version)) : this.directives = new se({ version: a }), this.setSchema(a, n), this.contents = e === void 0 ? null : this.createNode(e, r, n);
1929
+ n?._directives ? (this.directives = n._directives.atDocument(), this.directives.yaml.explicit && (a = this.directives.yaml.version)) : this.directives = new M({ version: a }), this.setSchema(a, n), this.contents = e === void 0 ? null : this.createNode(e, r, n);
1930
1930
  }
1931
1931
  clone() {
1932
1932
  let t = Object.create(e.prototype, { [_]: { value: f } });
@@ -1940,10 +1940,10 @@ var nn = class e {
1940
1940
  }
1941
1941
  createAlias(e, t) {
1942
1942
  if (!e.anchor) {
1943
- let n = le(this);
1944
- e.anchor = !t || n.has(t) ? ue(t || "a", n) : t;
1943
+ let n = ce(this);
1944
+ e.anchor = !t || n.has(t) ? le(t || "a", n) : t;
1945
1945
  }
1946
- return new de(e.anchor);
1946
+ return new fe(e.anchor);
1947
1947
  }
1948
1948
  createNode(e, t, n) {
1949
1949
  let r;
@@ -1952,7 +1952,7 @@ var nn = class e {
1952
1952
  let e = t.filter((e) => typeof e == "number" || e instanceof String || e instanceof Number).map(String);
1953
1953
  e.length > 0 && (t = t.concat(e)), r = t;
1954
1954
  } else n === void 0 && t && (n = t, t = void 0);
1955
- let { aliasDuplicateObjects: i, anchorPrefix: a, flow: o, keepUndefined: s, onTagObj: c, tag: l } = n ?? {}, { onAnchor: u, setAnchors: d, sourceObjects: f } = M(this, a || "a"), p = {
1955
+ let { aliasDuplicateObjects: i, anchorPrefix: a, flow: o, keepUndefined: s, onTagObj: c, tag: l } = n ?? {}, { onAnchor: u, setAnchors: d, sourceObjects: f } = ue(this, a || "a"), p = {
1956
1956
  aliasDuplicateObjects: i ?? !0,
1957
1957
  keepUndefined: s ?? !1,
1958
1958
  onAnchor: u,
@@ -1960,49 +1960,49 @@ var nn = class e {
1960
1960
  replacer: r,
1961
1961
  schema: this.schema,
1962
1962
  sourceObjects: f
1963
- }, m = ge(e, l, p);
1963
+ }, m = L(e, l, p);
1964
1964
  return o && w(m) && (m.flow = !0), d(), m;
1965
1965
  }
1966
1966
  createPair(e, t, n = {}) {
1967
- return new z(this.createNode(e, null, n), this.createNode(t, null, n));
1967
+ return new B(this.createNode(e, null, n), this.createNode(t, null, n));
1968
1968
  }
1969
1969
  delete(e) {
1970
1970
  return rn(this.contents) ? this.contents.delete(e) : !1;
1971
1971
  }
1972
1972
  deleteIn(e) {
1973
- return ve(e) ? this.contents != null && (this.contents = null, !0) : rn(this.contents) ? this.contents.deleteIn(e) : !1;
1973
+ return _e(e) ? this.contents != null && (this.contents = null, !0) : rn(this.contents) ? this.contents.deleteIn(e) : !1;
1974
1974
  }
1975
1975
  get(e, t) {
1976
1976
  return w(this.contents) ? this.contents.get(e, t) : void 0;
1977
1977
  }
1978
1978
  getIn(e, t) {
1979
- return ve(e) ? !t && S(this.contents) ? this.contents.value : this.contents : w(this.contents) ? this.contents.getIn(e, t) : void 0;
1979
+ return _e(e) ? !t && S(this.contents) ? this.contents.value : this.contents : w(this.contents) ? this.contents.getIn(e, t) : void 0;
1980
1980
  }
1981
1981
  has(e) {
1982
1982
  return w(this.contents) ? this.contents.has(e) : !1;
1983
1983
  }
1984
1984
  hasIn(e) {
1985
- return ve(e) ? this.contents !== void 0 : w(this.contents) ? this.contents.hasIn(e) : !1;
1985
+ return _e(e) ? this.contents !== void 0 : w(this.contents) ? this.contents.hasIn(e) : !1;
1986
1986
  }
1987
1987
  set(e, t) {
1988
- this.contents == null ? this.contents = _e(this.schema, [e], t) : rn(this.contents) && this.contents.set(e, t);
1988
+ this.contents == null ? this.contents = ge(this.schema, [e], t) : rn(this.contents) && this.contents.set(e, t);
1989
1989
  }
1990
1990
  setIn(e, t) {
1991
- ve(e) ? this.contents = t : this.contents == null ? this.contents = _e(this.schema, Array.from(e), t) : rn(this.contents) && this.contents.setIn(e, t);
1991
+ _e(e) ? this.contents = t : this.contents == null ? this.contents = ge(this.schema, Array.from(e), t) : rn(this.contents) && this.contents.setIn(e, t);
1992
1992
  }
1993
1993
  setSchema(e, t = {}) {
1994
1994
  typeof e == "number" && (e = String(e));
1995
1995
  let n;
1996
1996
  switch (e) {
1997
1997
  case "1.1":
1998
- this.directives ? this.directives.yaml.version = "1.1" : this.directives = new se({ version: "1.1" }), n = {
1998
+ this.directives ? this.directives.yaml.version = "1.1" : this.directives = new M({ version: "1.1" }), n = {
1999
1999
  resolveKnownTags: !1,
2000
2000
  schema: "yaml-1.1"
2001
2001
  };
2002
2002
  break;
2003
2003
  case "1.2":
2004
2004
  case "next":
2005
- this.directives ? this.directives.yaml.version = e : this.directives = new se({ version: e }), n = {
2005
+ this.directives ? this.directives.yaml.version = e : this.directives = new M({ version: e }), n = {
2006
2006
  resolveKnownTags: !0,
2007
2007
  schema: "core"
2008
2008
  };
@@ -2179,7 +2179,7 @@ function fn(e, t, n) {
2179
2179
  //#region node_modules/yaml/browser/dist/compose/resolve-block-map.js
2180
2180
  var pn = "All mapping items must start at the same column";
2181
2181
  function mn({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
2182
- let o = new ((a?.nodeClass) ?? B)(n.schema);
2182
+ let o = new ((a?.nodeClass) ?? V)(n.schema);
2183
2183
  n.atRoot &&= !1;
2184
2184
  let s = r.offset, c = null;
2185
2185
  for (let a of r.items) {
@@ -2213,11 +2213,11 @@ function mn({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
2213
2213
  m && (f?.type === "block-map" && !_.hasNewline && i(s, "BLOCK_AS_IMPLICIT_KEY", "Nested mappings are not allowed in compact mappings"), n.options.strict && p.start < _.found.offset - 1024 && i(g.range, "KEY_OVER_1024_CHARS", "The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));
2214
2214
  let c = f ? e(n, f, _, i) : t(n, s, d, null, _, i);
2215
2215
  n.schema.compat && dn(r.indent, f, i), s = c.range[2];
2216
- let l = new z(g, c);
2216
+ let l = new B(g, c);
2217
2217
  n.options.keepSourceTokens && (l.srcToken = a), o.items.push(l);
2218
2218
  } else {
2219
2219
  m && i(g.range, "MISSING_CHAR", "Implicit map keys need to be followed by map values"), _.comment && (g.comment ? g.comment += "\n" + _.comment : g.comment = _.comment);
2220
- let e = new z(g);
2220
+ let e = new B(g);
2221
2221
  n.options.keepSourceTokens && (e.srcToken = a), o.items.push(e);
2222
2222
  }
2223
2223
  }
@@ -2230,7 +2230,7 @@ function mn({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
2230
2230
  //#endregion
2231
2231
  //#region node_modules/yaml/browser/dist/compose/resolve-block-seq.js
2232
2232
  function hn({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
2233
- let o = new ((a?.nodeClass) ?? V)(n.schema);
2233
+ let o = new ((a?.nodeClass) ?? nt)(n.schema);
2234
2234
  n.atRoot &&= !1, n.atKey &&= !1;
2235
2235
  let s = r.offset, c = null;
2236
2236
  for (let { start: a, value: l } of r.items) {
@@ -2293,7 +2293,7 @@ function gn(e, t, n, r) {
2293
2293
  //#region node_modules/yaml/browser/dist/compose/resolve-flow-collection.js
2294
2294
  var _n = "Block collections are not allowed within flow collections", vn = (e) => e && (e.type === "block-map" || e.type === "block-seq");
2295
2295
  function yn({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
2296
- let o = r.start.source === "{", s = o ? "flow map" : "flow sequence", c = new ((a?.nodeClass) ?? (o ? B : V))(n.schema);
2296
+ let o = r.start.source === "{", s = o ? "flow map" : "flow sequence", c = new ((a?.nodeClass) ?? (o ? V : nt))(n.schema);
2297
2297
  c.flow = !0;
2298
2298
  let l = n.atRoot;
2299
2299
  l && (n.atRoot = !1), n.atKey &&= !1;
@@ -2361,12 +2361,12 @@ function yn({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
2361
2361
  } else m && ("source" in m && m.source?.[0] === ":" ? i(m, "MISSING_CHAR", `Missing space after : in ${s}`) : i(_.start, "MISSING_CHAR", `Missing , or : between ${s} items`));
2362
2362
  let v = m ? e(n, m, _, i) : _.found ? t(n, _.end, p, null, _, i) : null;
2363
2363
  v ? vn(m) && i(v.range, "BLOCK_IN_FLOW", _n) : _.comment && (g.comment ? g.comment += "\n" + _.comment : g.comment = _.comment);
2364
- let y = new z(g, v);
2364
+ let y = new B(g, v);
2365
2365
  if (n.options.keepSourceTokens && (y.srcToken = l), o) {
2366
2366
  let e = c;
2367
2367
  fn(n, e.items, g) && i(a, "DUPLICATE_KEY", "Map keys must be unique"), e.items.push(y);
2368
2368
  } else {
2369
- let e = new B(n.schema);
2369
+ let e = new V(n.schema);
2370
2370
  e.flow = !0, e.items.push(y);
2371
2371
  let t = (v ?? g).range;
2372
2372
  e.range = [
@@ -2411,14 +2411,14 @@ function xn(e, t, n, r, i) {
2411
2411
  n && (!t || t.offset < n.offset) && i(n, "MISSING_CHAR", "Missing newline after block sequence props");
2412
2412
  }
2413
2413
  let s = n.type === "block-map" ? "map" : n.type === "block-seq" ? "seq" : n.start.source === "{" ? "map" : "seq";
2414
- if (!a || !o || o === "!" || o === B.tagName && s === "map" || o === V.tagName && s === "seq") return bn(e, t, n, i, o);
2414
+ if (!a || !o || o === "!" || o === V.tagName && s === "map" || o === nt.tagName && s === "seq") return bn(e, t, n, i, o);
2415
2415
  let c = t.schema.tags.find((e) => e.tag === o && e.collection === s);
2416
2416
  if (!c) {
2417
2417
  let r = t.schema.knownTags[o];
2418
2418
  if (r?.collection === s) t.schema.tags.push(Object.assign({}, r, { default: !1 })), c = r;
2419
2419
  else return r ? i(a, "BAD_COLLECTION_TYPE", `${r.tag} used for ${s} collection, but expects ${r.collection ?? "scalar"}`, !0) : i(a, "TAG_RESOLVE_FAILED", `Unresolved tag: ${o}`, !0), bn(e, t, n, i, o);
2420
2420
  }
2421
- let l = bn(e, t, n, i, o, c), u = c.resolve?.(l, (e) => i(a, "TAG_RESOLVE_FAILED", e), t.options) ?? l, d = T(u) ? u : new I(u);
2421
+ let l = bn(e, t, n, i, o, c), u = c.resolve?.(l, (e) => i(a, "TAG_RESOLVE_FAILED", e), t.options) ?? l, d = T(u) ? u : new F(u);
2422
2422
  return d.range = l.range, d.tag = o, c?.format && (d.format = c.format), d;
2423
2423
  }
2424
2424
  //#endregion
@@ -2435,7 +2435,7 @@ function Sn(e, t, n) {
2435
2435
  r
2436
2436
  ]
2437
2437
  };
2438
- let a = i.mode === ">" ? I.BLOCK_FOLDED : I.BLOCK_LITERAL, o = t.source ? wn(t.source) : [], s = o.length;
2438
+ let a = i.mode === ">" ? F.BLOCK_FOLDED : F.BLOCK_LITERAL, o = t.source ? wn(t.source) : [], s = o.length;
2439
2439
  for (let e = o.length - 1; e >= 0; --e) {
2440
2440
  let t = o[e][1];
2441
2441
  if (t === "" || t === "\r") s = e;
@@ -2476,7 +2476,7 @@ function Sn(e, t, n) {
2476
2476
  let e = `Block scalar lines must not be less indented than their ${i.indent ? "explicit indentation indicator" : "first line"}`;
2477
2477
  n(l - r.length - (s ? 2 : 1), "BAD_INDENT", e), t = "";
2478
2478
  }
2479
- a === I.BLOCK_LITERAL ? (d += f + t.slice(c) + r, f = "\n") : t.length > c || r[0] === " " ? (f === " " ? f = "\n" : !p && f === "\n" && (f = "\n\n"), d += f + t.slice(c) + r, f = "\n", p = !0) : r === "" ? f === "\n" ? d += "\n" : f = "\n" : (d += f + r, f = " ", p = !1);
2479
+ a === F.BLOCK_LITERAL ? (d += f + t.slice(c) + r, f = "\n") : t.length > c || r[0] === " " ? (f === " " ? f = "\n" : !p && f === "\n" && (f = "\n\n"), d += f + t.slice(c) + r, f = "\n", p = !0) : r === "" ? f === "\n" ? d += "\n" : f = "\n" : (d += f + r, f = " ", p = !1);
2480
2480
  }
2481
2481
  switch (i.chomp) {
2482
2482
  case "-": break;
@@ -2552,13 +2552,13 @@ function Tn(e, t, n) {
2552
2552
  let { offset: r, type: i, source: a, end: o } = e, s, c, l = (e, t, i) => n(r + e, t, i);
2553
2553
  switch (i) {
2554
2554
  case "scalar":
2555
- s = I.PLAIN, c = En(a, l);
2555
+ s = F.PLAIN, c = En(a, l);
2556
2556
  break;
2557
2557
  case "single-quoted-scalar":
2558
- s = I.QUOTE_SINGLE, c = Dn(a, l);
2558
+ s = F.QUOTE_SINGLE, c = Dn(a, l);
2559
2559
  break;
2560
2560
  case "double-quoted-scalar":
2561
- s = I.QUOTE_DOUBLE, c = kn(a, l);
2561
+ s = F.QUOTE_DOUBLE, c = kn(a, l);
2562
2562
  break;
2563
2563
  /* istanbul ignore next should not happen */
2564
2564
  default: return n(e, "UNEXPECTED_TOKEN", `Expected a flow scalar value, but found: ${i}`), {
@@ -2697,10 +2697,10 @@ function Nn(e, t, n, r) {
2697
2697
  let u;
2698
2698
  try {
2699
2699
  let a = l.resolve(i, (e) => r(n ?? t, "TAG_RESOLVE_FAILED", e), e.options);
2700
- u = S(a) ? a : new I(a);
2700
+ u = S(a) ? a : new F(a);
2701
2701
  } catch (e) {
2702
2702
  let a = e instanceof Error ? e.message : String(e);
2703
- r(n ?? t, "TAG_RESOLVE_FAILED", a), u = new I(i);
2703
+ r(n ?? t, "TAG_RESOLVE_FAILED", a), u = new F(i);
2704
2704
  }
2705
2705
  return u.range = s, u.source = i, a && (u.type = a), c && (u.tag = c), l.format && (u.format = l.format), o && (u.comment = o), u;
2706
2706
  }
@@ -2787,7 +2787,7 @@ function zn(e, t, n, r, { spaceBefore: i, comment: a, anchor: o, tag: s, end: c
2787
2787
  return o && (u.anchor = o.source.substring(1), u.anchor === "" && l(o, "BAD_ALIAS", "Anchor cannot be an empty string")), i && (u.spaceBefore = !0), a && (u.comment = a, u.range[2] = c), u;
2788
2788
  }
2789
2789
  function Bn({ options: e }, { offset: t, source: n, end: r }, i) {
2790
- let a = new de(n.substring(1));
2790
+ let a = new fe(n.substring(1));
2791
2791
  a.source === "" && i(t, "BAD_ALIAS", "Alias cannot be an empty string"), a.source.endsWith(":") && i(t + n.length - 1, "BAD_ALIAS", "Alias ending in : is ambiguous", !0);
2792
2792
  let o = t + n.length, s = gn(r, o, e.strict, i);
2793
2793
  return a.range = [
@@ -2853,7 +2853,7 @@ var Wn = class {
2853
2853
  this.doc = null, this.atDirectives = !1, this.prelude = [], this.errors = [], this.warnings = [], this.onError = (e, t, n, r) => {
2854
2854
  let i = Hn(e);
2855
2855
  r ? this.warnings.push(new sn(i, t, n)) : this.errors.push(new on(i, t, n));
2856
- }, this.directives = new se({ version: e.version || "1.2" }), this.options = e;
2856
+ }, this.directives = new M({ version: e.version || "1.2" }), this.options = e;
2857
2857
  }
2858
2858
  decorate(e, t) {
2859
2859
  let { comment: n, afterEmptyLine: r } = Un(this.prelude);
@@ -2961,7 +2961,7 @@ function Gn(e, t = !0, n) {
2961
2961
  return null;
2962
2962
  }
2963
2963
  function Kn(e, t) {
2964
- let { implicitKey: n = !1, indent: r, inFlow: i = !1, offset: a = -1, type: o = "PLAIN" } = t, s = Ie({
2964
+ let { implicitKey: n = !1, indent: r, inFlow: i = !1, offset: a = -1, type: o = "PLAIN" } = t, s = Fe({
2965
2965
  type: o,
2966
2966
  value: e
2967
2967
  }, {
@@ -3040,7 +3040,7 @@ function qn(e, t, n = {}) {
3040
3040
  }
3041
3041
  default: o = "PLAIN";
3042
3042
  }
3043
- let c = Ie({
3043
+ let c = Fe({
3044
3044
  type: o,
3045
3045
  value: t
3046
3046
  }, {
@@ -4346,7 +4346,7 @@ function Dr(e, t, n) {
4346
4346
  typeof t == "function" ? r = t : n === void 0 && t && typeof t == "object" && (n = t);
4347
4347
  let i = Er(e, n);
4348
4348
  if (!i) return null;
4349
- if (i.warnings.forEach((e) => He(i.options.logLevel, e)), i.errors.length > 0) {
4349
+ if (i.warnings.forEach((e) => Ve(i.options.logLevel, e)), i.errors.length > 0) {
4350
4350
  if (i.options.logLevel !== "silent") throw i.errors[0];
4351
4351
  i.errors = [];
4352
4352
  }
@@ -4367,20 +4367,20 @@ function Or(e, t, n) {
4367
4367
  //#endregion
4368
4368
  //#region node_modules/yaml/browser/index.js
4369
4369
  var kr = /* @__PURE__ */ a({
4370
- Alias: () => de,
4370
+ Alias: () => fe,
4371
4371
  CST: () => ar,
4372
4372
  Composer: () => Wn,
4373
4373
  Document: () => nn,
4374
4374
  Lexer: () => hr,
4375
4375
  LineCounter: () => gr,
4376
- Pair: () => z,
4376
+ Pair: () => B,
4377
4377
  Parser: () => Cr,
4378
- Scalar: () => I,
4378
+ Scalar: () => F,
4379
4379
  Schema: () => en,
4380
4380
  YAMLError: () => an,
4381
- YAMLMap: () => B,
4381
+ YAMLMap: () => V,
4382
4382
  YAMLParseError: () => on,
4383
- YAMLSeq: () => V,
4383
+ YAMLSeq: () => nt,
4384
4384
  YAMLWarning: () => sn,
4385
4385
  isAlias: () => v,
4386
4386
  isCollection: () => w,
@@ -7543,18 +7543,26 @@ async function pi(e, t) {
7543
7543
  return [];
7544
7544
  }
7545
7545
  }
7546
- function mi(e) {
7547
- return !e || !e.trim() ? null : e.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().trim().replace(/[^a-z0-9\s-]/g, "").replace(/[\s-]+/g, "-").replace(/^-+|-+$/g, "") || null;
7546
+ async function mi(e, t, n) {
7547
+ try {
7548
+ let r = q(e), i = await t.prepare("SELECT treeId FROM tree_nodes WHERE contentId = ?").all(n), a = Array.isArray(i) ? i : i?.results || [];
7549
+ for (let e of a) await r.delete(`tree:default:${e.treeId}`), await r.delete(`tree:all:${e.treeId}`);
7550
+ } catch (e) {
7551
+ console.warn("[Cache] Failed to invalidate tree caches for node", e);
7552
+ }
7548
7553
  }
7549
7554
  function hi(e) {
7550
- return +(e === !0 || e === 1 || e === "1" || e === "true");
7555
+ return !e || !e.trim() ? null : e.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().trim().replace(/[^a-z0-9\s-]/g, "").replace(/[\s-]+/g, "-").replace(/^-+|-+$/g, "") || null;
7551
7556
  }
7552
7557
  function gi(e) {
7558
+ return +(e === !0 || e === 1 || e === "1" || e === "true");
7559
+ }
7560
+ function _i(e) {
7553
7561
  if (e == null || e === "null" || e === "" || typeof e == "string" && e.startsWith("draft-")) return null;
7554
7562
  let t = Number(e);
7555
7563
  return isNaN(t) ? null : t;
7556
7564
  }
7557
- function _i(e) {
7565
+ function vi(e) {
7558
7566
  let t = { ...e };
7559
7567
  for (let e of [
7560
7568
  "id",
@@ -7583,10 +7591,10 @@ function _i(e) {
7583
7591
  ]) delete t[e];
7584
7592
  return t;
7585
7593
  }
7586
- function vi(e, t = /* @__PURE__ */ new Set()) {
7587
- return e ? typeof e == "string" ? (e.startsWith("ast_") && t.add(e), t) : Array.isArray(e) ? (e.forEach((e) => vi(e, t)), t) : (typeof e == "object" && Object.values(e).forEach((e) => vi(e, t)), t) : t;
7594
+ function yi(e, t = /* @__PURE__ */ new Set()) {
7595
+ return e ? typeof e == "string" ? (e.startsWith("ast_") && t.add(e), t) : Array.isArray(e) ? (e.forEach((e) => yi(e, t)), t) : (typeof e == "object" && Object.values(e).forEach((e) => yi(e, t)), t) : t;
7588
7596
  }
7589
- async function yi(e, t, n) {
7597
+ async function bi(e, t, n) {
7590
7598
  for (let r of n) {
7591
7599
  let n = (await di(e, "\n SELECT id, storageKeyPrivate, isSystemVariant, parentAssetId, filename\n FROM assets WHERE id = ?\n ", [r]))[0];
7592
7600
  if (!n || (await di(e, "SELECT 1 FROM node_assets WHERE assetId = ? LIMIT 1", [n.id])).length > 0) continue;
@@ -7605,7 +7613,7 @@ async function yi(e, t, n) {
7605
7613
  await fi(e, `DELETE FROM node_assets WHERE assetId IN (${o})`, a), await fi(e, `DELETE FROM assets WHERE id IN (${o})`, a);
7606
7614
  }
7607
7615
  }
7608
- async function bi(e, t, n) {
7616
+ async function xi(e, t, n) {
7609
7617
  let r = {}, i = null;
7610
7618
  if (t) {
7611
7619
  let n = await e.prepare("\n WITH RECURSIVE ancestor_path(id, parentId, draftDataJson, dataJson, level) AS (\n SELECT t.id, t.parentId, c.draftDataJson, c.dataJson, 0\n FROM tree_nodes t\n INNER JOIN content_nodes c ON t.contentId = c.id\n WHERE t.id = ?\n UNION ALL\n SELECT t.id, t.parentId, c.draftDataJson, c.dataJson, ap.level + 1\n FROM tree_nodes t\n INNER JOIN content_nodes c ON t.contentId = c.id\n INNER JOIN ancestor_path ap ON t.id = ap.parentId\n )\n SELECT draftDataJson, dataJson FROM ancestor_path ORDER BY level ASC\n ").all(t), a = Array.isArray(n) ? n : n?.results || [];
@@ -7657,11 +7665,11 @@ X.get("/", async (e) => {
7657
7665
  if (s) try {
7658
7666
  let n = typeof s == "string" ? JSON.parse(s) : s, a = await t.prepare("SELECT id as treeNodeId, treeId, parentId FROM tree_nodes WHERE contentId = ? LIMIT 1").get(r), c = ui(e.env?.BUNDLED_DEFINITIONS).nodes?.[i.contentType] || {}, l = n.layoutId || null;
7659
7667
  if (a) {
7660
- let { resolvedLayoutId: e, inheritedFields: r } = await bi(t, a.parentId, a.treeId);
7668
+ let { resolvedLayoutId: e, inheritedFields: r } = await xi(t, a.parentId, a.treeId);
7661
7669
  (l === "inherit" || !l) && (l = e || c.defaultLayout || null);
7662
7670
  for (let [e, t] of Object.entries(r)) (n[e] === void 0 || n[e] === null || n[e] === "") && t !== void 0 && (n[e] = t);
7663
7671
  } else (l === "inherit" || !l) && (l = c.defaultLayout || null);
7664
- let u = await si(t, _i(n));
7672
+ let u = await si(t, vi(n));
7665
7673
  Object.assign(o, u), o.resolvedLayoutId = l;
7666
7674
  } catch {}
7667
7675
  let c = await t.prepare("SELECT channelId FROM node_channels WHERE nodeId = ?").all(r);
@@ -7771,7 +7779,7 @@ X.get("/", async (e) => {
7771
7779
  assetCount: e.assetCount || 0
7772
7780
  }, i = e.draftDataJson || e.dataJson;
7773
7781
  if (i) try {
7774
- let e = typeof i == "string" ? JSON.parse(i) : i, n = await si(t, _i(e));
7782
+ let e = typeof i == "string" ? JSON.parse(i) : i, n = await si(t, vi(e));
7775
7783
  Object.assign(r, n);
7776
7784
  } catch {}
7777
7785
  return r;
@@ -7784,22 +7792,22 @@ X.get("/", async (e) => {
7784
7792
  limit: f
7785
7793
  });
7786
7794
  }), X.post("/", async (e) => {
7787
- let t = e.get("db"), n = await e.req.json(), r = n.node || n.activeNode || n, i = r.id || n.id, a = i != null && i !== "" && !isNaN(Number(i)) ? Number(i) : null, { title: o, slug: s, language: c, nodeType: l, contentType: u, isHidden: d, hidden: f, is_hidden: p, blocks: m, channels: h, trees: g, ..._ } = r, v = _i(_), { cleanedData: y, assetRefs: b } = ii(v), x = hi(d === void 0 ? f === void 0 ? p : f : d), S = c || "en", C = l || u || "page", w = e.get("user")?.id || null, T = a, E = /* @__PURE__ */ new Set();
7795
+ let t = e.get("db"), n = await e.req.json(), r = n.node || n.activeNode || n, i = r.id || n.id, a = i != null && i !== "" && !isNaN(Number(i)) ? Number(i) : null, { title: o, slug: s, language: c, nodeType: l, contentType: u, isHidden: d, hidden: f, is_hidden: p, blocks: m, channels: h, trees: g, ..._ } = r, v = vi(_), { cleanedData: y, assetRefs: b } = ii(v), x = gi(d === void 0 ? f === void 0 ? p : f : d), S = c || "en", C = l || u || "page", w = e.get("user")?.id || null, T = a, E = /* @__PURE__ */ new Set();
7788
7796
  if (a) {
7789
7797
  let n = await t.prepare("SELECT title, slug, contentType, language, draftDataJson, dataJson, publishedAt, status FROM content_nodes WHERE id = ?").get(a), r = n?.draftDataJson || n?.dataJson || "{}";
7790
7798
  try {
7791
- vi(typeof r == "string" ? JSON.parse(r) : r, E);
7799
+ yi(typeof r == "string" ? JSON.parse(r) : r, E);
7792
7800
  } catch {}
7793
7801
  if (m !== void 0) {
7794
7802
  let e = await t.prepare("SELECT dataJson FROM content_blocks WHERE contentId = ? AND isDraft = 1").all(a);
7795
7803
  (Array.isArray(e) ? e : e?.results || []).forEach((e) => {
7796
7804
  try {
7797
- vi(typeof e.dataJson == "string" ? JSON.parse(e.dataJson) : e.dataJson, E);
7805
+ yi(typeof e.dataJson == "string" ? JSON.parse(e.dataJson) : e.dataJson, E);
7798
7806
  } catch {}
7799
7807
  });
7800
7808
  }
7801
7809
  if (m === void 0 && o === void 0 && s === void 0 && h === void 0 && g === void 0 && Object.keys(v).length === 0) {
7802
- if (await t.prepare("\n UPDATE content_nodes \n SET isHidden = ?, \n updatedById = ?, \n updatedAt = CURRENT_TIMESTAMP\n WHERE id = ?\n ").run(x, w, a), await q(e).clear(), n?.status === "published") {
7810
+ if (await t.prepare("\n UPDATE content_nodes \n SET isHidden = ?, \n updatedById = ?, \n updatedAt = CURRENT_TIMESTAMP\n WHERE id = ?\n ").run(x, w, a), await q(e).clear(), await mi(e, t, a), n?.status === "published") {
7803
7811
  let r = await pi(t, a);
7804
7812
  new Y(e.env).purgeSmart(e, t, a, n.slug, r);
7805
7813
  }
@@ -7810,7 +7818,7 @@ X.get("/", async (e) => {
7810
7818
  });
7811
7819
  }
7812
7820
  {
7813
- let e = o === void 0 ? n?.title || "Untitled" : o, r = s === void 0 ? n?.slug ?? null : mi(s), i = C || n?.contentType || "page", c = S || n?.language || "en", l = n?.draftDataJson || n?.dataJson || "{}", u = {};
7821
+ let e = o === void 0 ? n?.title || "Untitled" : o, r = s === void 0 ? n?.slug ?? null : hi(s), i = C || n?.contentType || "page", c = S || n?.language || "en", l = n?.draftDataJson || n?.dataJson || "{}", u = {};
7814
7822
  try {
7815
7823
  u = JSON.parse(l);
7816
7824
  } catch {}
@@ -7821,7 +7829,7 @@ X.get("/", async (e) => {
7821
7829
  await t.prepare("\n UPDATE content_nodes \n SET title = ?, \n slug = ?, \n language = ?,\n contentType = ?, \n isHidden = ?, \n status = 'draft', \n draftDataJson = ?, \n updatedById = ?, \n updatedAt = CURRENT_TIMESTAMP\n WHERE id = ?\n ").run(e, r, c, i, x, d, w, a);
7822
7830
  }
7823
7831
  } else {
7824
- let e = o || "Untitled", n = mi(s), r = JSON.stringify(y), i = await t.prepare("\n INSERT INTO content_nodes (contentType, title, slug, language, isHidden, status, draftDataJson, dataJson, createdById, updatedById)\n VALUES (?, ?, ?, ?, ?, 'draft', ?, NULL, ?, ?)\n ").run(C, e, n, S, x, r, w, w);
7832
+ let e = o || "Untitled", n = hi(s), r = JSON.stringify(y), i = await t.prepare("\n INSERT INTO content_nodes (contentType, title, slug, language, isHidden, status, draftDataJson, dataJson, createdById, updatedById)\n VALUES (?, ?, ?, ?, ?, 'draft', ?, NULL, ?, ?)\n ").run(C, e, n, S, x, r, w, w);
7825
7833
  T = Number(i.lastInsertRowid);
7826
7834
  }
7827
7835
  if (h !== void 0 && Array.isArray(h) && T) {
@@ -7839,7 +7847,7 @@ X.get("/", async (e) => {
7839
7847
  let i = Number(t.treeId) || t.treeId;
7840
7848
  if (!e.has(i)) {
7841
7849
  e.add(i);
7842
- let a = gi(t.parentId ?? t._draftParentId ?? null), o = typeof t.sortOrder == "number" ? t.sortOrder : 0;
7850
+ let a = _i(t.parentId ?? t._draftParentId ?? null), o = typeof t.sortOrder == "number" ? t.sortOrder : 0;
7843
7851
  n.push("(?, ?, ?, ?)"), r.push(i, T, a, o);
7844
7852
  }
7845
7853
  }
@@ -7870,9 +7878,9 @@ X.get("/", async (e) => {
7870
7878
  let n = [...b, ...D];
7871
7879
  await ai(t, T, n);
7872
7880
  let r = new Set(n.map((e) => e.assetId)), i = new Set([...E].filter((e) => !r.has(e)));
7873
- i.size > 0 && await yi(t, ri(e.env), i);
7881
+ i.size > 0 && await bi(t, ri(e.env), i);
7874
7882
  }
7875
- return await q(e).clear(), e.json({
7883
+ return await q(e).clear(), T && await mi(e, t, T), e.json({
7876
7884
  success: !0,
7877
7885
  id: T,
7878
7886
  status: "draft"
@@ -7902,7 +7910,7 @@ X.get("/", async (e) => {
7902
7910
  },
7903
7911
  blocks: l
7904
7912
  };
7905
- await t.prepare("\n INSERT INTO node_revisions (nodeId, version, snapshotJson, createdById)\n VALUES (?, ?, ?, ?)\n ").run(i, u, JSON.stringify(d), a), await q(e).clear();
7913
+ await t.prepare("\n INSERT INTO node_revisions (nodeId, version, snapshotJson, createdById)\n VALUES (?, ?, ?, ?)\n ").run(i, u, JSON.stringify(d), a), await q(e).clear(), await mi(e, t, i);
7906
7914
  let f = await pi(t, i);
7907
7915
  return new Y(e.env).purgeSmart(e, t, i, o.slug, f), e.json({
7908
7916
  success: !0,
@@ -7915,7 +7923,7 @@ X.get("/", async (e) => {
7915
7923
  let t = e.get("db"), n = e.req.query("id");
7916
7924
  if (!n) return e.json({ error: "Node ID required" }, 400);
7917
7925
  let r = Number(n), i = await t.prepare("SELECT slug, status FROM content_nodes WHERE id = ?").get(r);
7918
- if (await t.prepare("UPDATE content_nodes SET deletedAt = CURRENT_TIMESTAMP WHERE id = ?").run(r), await q(e).clear(), i && i.status === "published") {
7926
+ if (await t.prepare("UPDATE content_nodes SET deletedAt = CURRENT_TIMESTAMP WHERE id = ?").run(r), await q(e).clear(), await mi(e, t, r), i && i.status === "published") {
7919
7927
  let n = await pi(t, r);
7920
7928
  new Y(e.env).purgeSmart(e, t, r, i.slug, n);
7921
7929
  }
@@ -7927,7 +7935,7 @@ X.get("/", async (e) => {
7927
7935
  let t = e.get("db"), n = await e.req.json(), r = Number(n.id);
7928
7936
  if (!r) return e.json({ error: "Node ID required" }, 400);
7929
7937
  let i = await t.prepare("SELECT slug, status FROM content_nodes WHERE id = ?").get(r);
7930
- if (await t.prepare("UPDATE content_nodes SET deletedAt = NULL WHERE id = ?").run(r), await q(e).clear(), i && i.status === "published") {
7938
+ if (await t.prepare("UPDATE content_nodes SET deletedAt = NULL WHERE id = ?").run(r), await q(e).clear(), await mi(e, t, r), i && i.status === "published") {
7931
7939
  let n = await pi(t, r);
7932
7940
  new Y(e.env).purgeSmart(e, t, r, i.slug, n);
7933
7941
  }
@@ -7939,15 +7947,15 @@ X.get("/", async (e) => {
7939
7947
  let t = e.get("db"), n = e.req.query("id");
7940
7948
  if (!n) return e.json({ error: "Node ID required" }, 400);
7941
7949
  let r = Number(n), i = await t.prepare("SELECT slug, status FROM content_nodes WHERE id = ?").get(r), a = await pi(t, r);
7942
- return await t.prepare("DELETE FROM node_channels WHERE nodeId = ?").run(r), await t.prepare("DELETE FROM tree_nodes WHERE contentId = ?").run(r), await t.prepare("DELETE FROM content_blocks WHERE contentId = ?").run(r), await t.prepare("DELETE FROM node_revisions WHERE nodeId = ?").run(r), await t.prepare("DELETE FROM node_assets WHERE nodeId = ?").run(r), await t.prepare("DELETE FROM content_nodes WHERE id = ?").run(r), await q(e).clear(), i && i.status === "published" && new Y(e.env).purgeSmart(e, t, r, i.slug, a), e.json({
7950
+ return await mi(e, t, r), await t.prepare("DELETE FROM node_channels WHERE nodeId = ?").run(r), await t.prepare("DELETE FROM tree_nodes WHERE contentId = ?").run(r), await t.prepare("DELETE FROM content_blocks WHERE contentId = ?").run(r), await t.prepare("DELETE FROM node_revisions WHERE nodeId = ?").run(r), await t.prepare("DELETE FROM node_assets WHERE nodeId = ?").run(r), await t.prepare("DELETE FROM content_nodes WHERE id = ?").run(r), await q(e).clear(), i && i.status === "published" && new Y(e.env).purgeSmart(e, t, r, i.slug, a), e.json({
7943
7951
  success: !0,
7944
7952
  purgedNodeId: r
7945
7953
  });
7946
7954
  });
7947
7955
  //#endregion
7948
7956
  //#region server/routes/admin/trees.ts
7949
- var xi = new e();
7950
- function Si(e, t = null) {
7957
+ var Si = new e();
7958
+ function Ci(e, t = null) {
7951
7959
  let n = [];
7952
7960
  for (let r = 0; r < e.length; r++) {
7953
7961
  let i = e[r];
@@ -7960,20 +7968,20 @@ function Si(e, t = null) {
7960
7968
  id: a,
7961
7969
  parentId: t,
7962
7970
  sortOrder: r
7963
- }), i.children && Array.isArray(i.children) && i.children.length > 0 && n.push(...Si(i.children, a));
7971
+ }), i.children && Array.isArray(i.children) && i.children.length > 0 && n.push(...Ci(i.children, a));
7964
7972
  }
7965
7973
  }
7966
7974
  return n;
7967
7975
  }
7968
- function Ci(e) {
7976
+ function wi(e) {
7969
7977
  if (e == null || e === "null" || e === "" || typeof e == "string" && e.startsWith("draft-")) return null;
7970
7978
  let t = Number(e);
7971
7979
  return isNaN(t) ? null : t;
7972
7980
  }
7973
- function wi(e) {
7981
+ function Ti(e) {
7974
7982
  return +(e === !0 || e === 1 || e === "1" || e === "true");
7975
7983
  }
7976
- xi.get("/tree.json", async (e) => {
7984
+ Si.get("/tree.json", async (e) => {
7977
7985
  try {
7978
7986
  let t = e.get("db"), n = e.req.query("treeId") || "main-nav", r = e.req.query("preview") === "true", i = 1;
7979
7987
  if (isNaN(Number(n))) {
@@ -7996,12 +8004,13 @@ xi.get("/tree.json", async (e) => {
7996
8004
  }).map((e) => {
7997
8005
  let t = {}, n = e.draftDataJson || e.dataJson;
7998
8006
  if (n) try {
7999
- t = typeof n == "string" ? JSON.parse(n) : n, delete t._isTreeDraft, delete t._draftParentId, delete t.nodeType, delete t.contentType, delete t.title, delete t.slug, delete t.hidden, delete t.is_hidden, delete t.isHidden, delete t.status;
8007
+ let e = typeof n == "string" ? JSON.parse(n) : n;
8008
+ e && typeof e == "object" && (t = e, delete t._isTreeDraft, delete t._draftParentId, delete t.nodeType, delete t.contentType, delete t.title, delete t.slug, delete t.hidden, delete t.is_hidden, delete t.isHidden, delete t.status);
8000
8009
  } catch {}
8001
8010
  let { dataJson: r, draftDataJson: i, ...a } = e, o = {
8002
8011
  ...a,
8003
8012
  ...t
8004
- }, s = !!e.isHidden || o.hidden === !0 || o.hidden === 1 || o.hidden === "true", c = (e.status === "draft" || !e.status) && !!e.publishedAt;
8013
+ }, s = Number(e.isHidden) === 1 || o.hidden === !0 || o.hidden === 1 || o.hidden === "true", c = (e.status === "draft" || !e.status) && !!e.publishedAt;
8005
8014
  return {
8006
8015
  ...o,
8007
8016
  id: e.contentId,
@@ -8022,7 +8031,7 @@ xi.get("/tree.json", async (e) => {
8022
8031
  } catch (t) {
8023
8032
  return console.error("[CMS Tree API] GET Error:", t), e.json({ error: t.message || "Failed to fetch tree" }, 500);
8024
8033
  }
8025
- }), xi.post("/tree.json", async (e) => {
8034
+ }), Si.post("/tree.json", async (e) => {
8026
8035
  try {
8027
8036
  let t = e.get("db"), n = await e.req.json(), r = n.treeId ? String(n.treeId).trim() : "main-nav", i = q(e), a = new Y(e.env), o = 1;
8028
8037
  if (isNaN(Number(r))) {
@@ -8034,7 +8043,7 @@ xi.get("/tree.json", async (e) => {
8034
8043
  }
8035
8044
  } else o = Number(r);
8036
8045
  if (n.tree && Array.isArray(n.tree)) {
8037
- let r = Si(n.tree, null);
8046
+ let r = Ci(n.tree, null);
8038
8047
  if (r.length > 0) for (let e = 0; e < r.length; e += 50) {
8039
8048
  let n = r.slice(e, e + 50), i = n.map((e) => e.id), a = i.map(() => "?").join(","), s = "UPDATE tree_nodes SET \n";
8040
8049
  s += "parentId = CASE id \n", n.forEach(() => {
@@ -8049,11 +8058,11 @@ xi.get("/tree.json", async (e) => {
8049
8058
  c.push(e.id, e.sortOrder);
8050
8059
  }), c.push(...i), c.push(o), await t.prepare(s).run(...c);
8051
8060
  }
8052
- return await i.clear(), a.purgeGlobalCache(e), e.json({ success: !0 });
8061
+ return await i.clear(), await a.purgeGlobalCache(e), e.json({ success: !0 });
8053
8062
  }
8054
- let { action: s, title: c, nodeType: l, parentId: u, contentId: d, nodeData: f = {}, pageData: p = {} } = n, m = Object.keys(f).length > 0 ? { ...f } : { ...p }, h = wi(n.isHidden === void 0 ? m.isHidden === void 0 ? m.hidden : m.isHidden : n.isHidden);
8063
+ let { action: s, title: c, nodeType: l, parentId: u, contentId: d, nodeData: f = {}, pageData: p = {} } = n, m = Object.keys(f).length > 0 ? { ...f } : { ...p }, h = Ti(n.isHidden === void 0 ? m.isHidden === void 0 ? m.hidden : m.isHidden : n.isHidden);
8055
8064
  delete m._isTreeDraft, delete m._draftParentId, delete m.isNew, delete m.nodeType, delete m.contentType, delete m.title, delete m.slug, delete m.hidden, delete m.is_hidden, delete m.isHidden, delete m.status;
8056
- let g = Ci(u), _ = e.get("user")?.id || null;
8065
+ let g = wi(u), _ = e.get("user")?.id || null;
8057
8066
  if (s === "create") {
8058
8067
  let r = m.slug || n.slug || c, s = r ? String(r).toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/(^-|-$)/g, "") : null;
8059
8068
  if (s) {
@@ -8085,7 +8094,7 @@ xi.get("/tree.json", async (e) => {
8085
8094
  let e = b.map(() => "(?, ?)").join(", "), n = b.flatMap((e) => [f, e]);
8086
8095
  await t.prepare(`INSERT OR IGNORE INTO node_channels (nodeId, channelId) VALUES ${e}`).run(...n);
8087
8096
  }
8088
- return await i.clear(), a.purgeGlobalCache(e), e.json({
8097
+ return await i.clear(), await a.purgeGlobalCache(e), e.json({
8089
8098
  success: !0,
8090
8099
  id: f,
8091
8100
  treeNodeId: v,
@@ -8123,14 +8132,14 @@ xi.get("/tree.json", async (e) => {
8123
8132
  }
8124
8133
  await t.prepare("DELETE FROM tree_nodes WHERE treeId = ? AND contentId = ?").run(o, d);
8125
8134
  let r = await t.prepare("\n INSERT INTO tree_nodes (treeId, contentId, parentId, sortOrder)\n VALUES (?, ?, ?, 0)\n ").run(o, d, g), s = Number(r.lastInsertRowid);
8126
- return await i.clear(), a.purgeGlobalCache(e), e.json({
8135
+ return await i.clear(), await a.purgeGlobalCache(e), e.json({
8127
8136
  success: !0,
8128
8137
  treeNodeId: s
8129
8138
  });
8130
8139
  }
8131
8140
  if (s === "detach") {
8132
8141
  let r = n.treeNodeId || n.contentId;
8133
- return r ? (await t.prepare("\n UPDATE tree_nodes \n SET parentId = (SELECT parentId FROM tree_nodes WHERE (id = ? OR contentId = ?) AND treeId = ?) \n WHERE parentId = ? AND treeId = ?\n ").run(r, r, o, r, o), await t.prepare("DELETE FROM tree_nodes WHERE (id = ? OR contentId = ?) AND treeId = ?").run(r, r, o), await i.clear(), a.purgeGlobalCache(e), e.json({ success: !0 })) : e.json({ error: "treeNodeId or contentId required for detach" }, 400);
8142
+ return r ? (await t.prepare("\n UPDATE tree_nodes \n SET parentId = (SELECT parentId FROM tree_nodes WHERE (id = ? OR contentId = ?) AND treeId = ?) \n WHERE parentId = ? AND treeId = ?\n ").run(r, r, o, r, o), await t.prepare("DELETE FROM tree_nodes WHERE (id = ? OR contentId = ?) AND treeId = ?").run(r, r, o), await i.clear(), await a.purgeGlobalCache(e), e.json({ success: !0 })) : e.json({ error: "treeNodeId or contentId required for detach" }, 400);
8134
8143
  }
8135
8144
  return e.json({ error: "Invalid payload or action" }, 400);
8136
8145
  } catch (t) {
@@ -8139,7 +8148,7 @@ xi.get("/tree.json", async (e) => {
8139
8148
  details: t.message
8140
8149
  }, 500);
8141
8150
  }
8142
- }), xi.get("/trees.json", async (e) => {
8151
+ }), Si.get("/trees.json", async (e) => {
8143
8152
  try {
8144
8153
  let t = e.get("db"), n = await t.prepare("SELECT * FROM trees ORDER BY LOWER(label) ASC").all(), r = Array.isArray(n) ? n : n?.results || [], i = await t.prepare("SELECT channelId, treeId FROM channel_trees").all(), a = (Array.isArray(i) ? i : i?.results || []).reduce((e, t) => {
8145
8154
  let n = Number(t.treeId), r = Number(t.channelId);
@@ -8147,7 +8156,8 @@ xi.get("/tree.json", async (e) => {
8147
8156
  }, {}), o = r.map((e) => {
8148
8157
  let t = {};
8149
8158
  if (e.dataJson) try {
8150
- t = typeof e.dataJson == "string" ? JSON.parse(e.dataJson) : e.dataJson;
8159
+ let n = typeof e.dataJson == "string" ? JSON.parse(e.dataJson) : e.dataJson;
8160
+ n && typeof n == "object" && (t = n);
8151
8161
  } catch {}
8152
8162
  return {
8153
8163
  id: e.id,
@@ -8156,7 +8166,7 @@ xi.get("/tree.json", async (e) => {
8156
8166
  treeType: e.treeType ?? "",
8157
8167
  channelId: e.channelId || null,
8158
8168
  channels: a[e.id] || [],
8159
- isHidden: !!e.isHidden,
8169
+ isHidden: Number(e.isHidden) === 1,
8160
8170
  createdById: e.createdById || null,
8161
8171
  updatedById: e.updatedById || null,
8162
8172
  createdAt: e.createdAt,
@@ -8168,7 +8178,7 @@ xi.get("/tree.json", async (e) => {
8168
8178
  } catch {
8169
8179
  return e.json([]);
8170
8180
  }
8171
- }), xi.post("/trees.json", async (e) => {
8181
+ }), Si.post("/trees.json", async (e) => {
8172
8182
  try {
8173
8183
  let t = e.get("db"), n = await e.req.json(), r = n.id, i = r != null && r !== "" && !isNaN(Number(r)) ? Number(r) : null, a = `tree-${Date.now().toString(36)}`, o = (n.key || n.slug || a).toLowerCase().replace(/[^a-z0-9_-]/g, "-"), s = n.label?.trim() || o, c = n.treeType !== void 0 && n.treeType !== null ? n.treeType : n.type ?? "site", l = n.channelId !== void 0 && n.channelId !== null && Number(n.channelId) || null, u = +(n.isHidden === !0 || n.isHidden === 1 || n.isHidden === "true"), d = e.get("user")?.id || null, f = { ...n };
8174
8184
  if (delete f.id, delete f.key, delete f.label, delete f.treeType, delete f.type, delete f.channelId, delete f.channels, delete f.isHidden, delete f.createdById, delete f.updatedById, delete f.createdAt, delete f.updatedAt, await t.prepare("SELECT id FROM trees WHERE key = ? AND id != ? LIMIT 1").get(o, i ?? -1)) return e.json({
@@ -8193,7 +8203,7 @@ xi.get("/tree.json", async (e) => {
8193
8203
  await t.prepare(`INSERT OR IGNORE INTO channel_trees (channelId, treeId, key) VALUES ${n}`).run(...r);
8194
8204
  }
8195
8205
  }
8196
- return await q(e).clear(), new Y(e.env).purgeGlobalCache(e), e.json({
8206
+ return await q(e).clear(), await new Y(e.env).purgeGlobalCache(e), e.json({
8197
8207
  success: !0,
8198
8208
  id: p,
8199
8209
  key: o,
@@ -8207,12 +8217,12 @@ xi.get("/tree.json", async (e) => {
8207
8217
  } catch (t) {
8208
8218
  return console.error("[API Trees] Error saving tree:", t), e.json({ error: t.message || "Failed to save tree" }, 500);
8209
8219
  }
8210
- }), xi.delete("/trees.json", async (e) => {
8220
+ }), Si.delete("/trees.json", async (e) => {
8211
8221
  let t = e.get("db"), n = e.req.query("id");
8212
8222
  if (!n) return e.json({ error: "Tree ID required" }, 400);
8213
8223
  let r = Number(n);
8214
8224
  try {
8215
- return await t.prepare("DELETE FROM trees WHERE id = ?").run(r), await t.prepare("DELETE FROM channel_trees WHERE treeId = ?").run(r), await t.prepare("DELETE FROM tree_nodes WHERE treeId = ?").run(r), await q(e).clear(), new Y(e.env).purgeGlobalCache(e), e.json({
8225
+ return await t.prepare("DELETE FROM trees WHERE id = ?").run(r), await t.prepare("DELETE FROM channel_trees WHERE treeId = ?").run(r), await t.prepare("DELETE FROM tree_nodes WHERE treeId = ?").run(r), await q(e).clear(), await new Y(e.env).purgeGlobalCache(e), e.json({
8216
8226
  success: !0,
8217
8227
  deletedTreeId: r
8218
8228
  });
@@ -8222,8 +8232,8 @@ xi.get("/tree.json", async (e) => {
8222
8232
  });
8223
8233
  //#endregion
8224
8234
  //#region server/routes/admin/channels.ts
8225
- var Ti = new e();
8226
- Ti.get("/", async (e) => {
8235
+ var Ei = new e();
8236
+ Ei.get("/", async (e) => {
8227
8237
  try {
8228
8238
  let t = e.get("db"), n = await t.prepare("SELECT * FROM channels ORDER BY id ASC").all(), r = Array.isArray(n) ? n : n?.results || [], i = await t.prepare("SELECT channelId, treeId, key, metaJson FROM channel_trees").all(), a = ((Array.isArray(i) ? i : i?.results || []) || []).reduce((e, t) => {
8229
8239
  e[t.channelId] || (e[t.channelId] = []);
@@ -8289,7 +8299,7 @@ Ti.get("/", async (e) => {
8289
8299
  error: t.message
8290
8300
  }, 500);
8291
8301
  }
8292
- }), Ti.post("/", async (e) => {
8302
+ }), Ei.post("/", async (e) => {
8293
8303
  try {
8294
8304
  let t = e.get("db"), n = await e.req.json(), r = n.id, i = r != null && r !== "" && !isNaN(Number(r)) ? Number(r) : null, { key: a, label: o, channelType: s = "website", domain: c = "localhost", baseUrl: l = "http://localhost:4321", defaultLanguage: u = "en", isHidden: d = !1, trees: f = [], createdById: p = null, updatedById: m = null, id: h, createdAt: g, updatedAt: _, ...v } = n, y = a?.trim() || "main", b = o?.trim() || "Untitled Channel", x = Array.isArray(f) ? f : [], S = JSON.stringify(v || {}), C = e.get("user")?.id || m || p || null;
8295
8305
  if (await t.prepare("SELECT id FROM channels WHERE key = ? AND id != ? LIMIT 1").get(y, i ?? -1)) return e.json({
@@ -8326,7 +8336,7 @@ Ti.get("/", async (e) => {
8326
8336
  details: t.message
8327
8337
  }, 500);
8328
8338
  }
8329
- }), Ti.delete("/", async (e) => {
8339
+ }), Ei.delete("/", async (e) => {
8330
8340
  let t = e.get("db"), n = e.req.query("id");
8331
8341
  if (!n) return e.json({ error: "Channel ID required" }, 400);
8332
8342
  let r = Number(n);
@@ -8344,9 +8354,9 @@ Ti.get("/", async (e) => {
8344
8354
  });
8345
8355
  //#endregion
8346
8356
  //#region server/routes/admin/schemas.ts
8347
- var Ei = new e(), Di = null, Oi = (e) => {
8357
+ var Di = new e(), Oi = null, ki = (e) => {
8348
8358
  try {
8349
- if (!Di) {
8359
+ if (!Oi) {
8350
8360
  let t = li(e.env?.BUNDLED_DEFINITIONS || Ar), n = t.userTemplate || {
8351
8361
  id: "userTemplate",
8352
8362
  label: "User Account",
@@ -8383,7 +8393,7 @@ var Ei = new e(), Di = null, Oi = (e) => {
8383
8393
  }
8384
8394
  }
8385
8395
  };
8386
- Di = {
8396
+ Oi = {
8387
8397
  channelTemplate: t.channelTemplate || null,
8388
8398
  treeTemplate: t.treeTemplate || null,
8389
8399
  userTemplate: n,
@@ -8395,7 +8405,7 @@ var Ei = new e(), Di = null, Oi = (e) => {
8395
8405
  blockLayouts: t.blockLayouts || {}
8396
8406
  };
8397
8407
  }
8398
- return e.json(Di, 200, { "Cache-Control": "public, max-age=300, stale-while-revalidate=86400" });
8408
+ return e.json(Oi, 200, { "Cache-Control": "public, max-age=300, stale-while-revalidate=86400" });
8399
8409
  } catch (t) {
8400
8410
  return console.error("[CMS API] Error loading schemas:", t), e.json({
8401
8411
  error: "Failed to load schemas",
@@ -8403,10 +8413,10 @@ var Ei = new e(), Di = null, Oi = (e) => {
8403
8413
  }, 500);
8404
8414
  }
8405
8415
  };
8406
- Ei.get("/", Oi), Ei.get("/schemas.json", Oi);
8416
+ Di.get("/", ki), Di.get("/schemas.json", ki);
8407
8417
  //#endregion
8408
8418
  //#region server/routes/admin/validation.ts
8409
- var ki = new e(), Ai = {
8419
+ var Ai = new e(), ji = {
8410
8420
  node: "content_nodes",
8411
8421
  nodes: "content_nodes",
8412
8422
  content_node: "content_nodes",
@@ -8418,7 +8428,7 @@ var ki = new e(), Ai = {
8418
8428
  user: "users",
8419
8429
  users: "users",
8420
8430
  user_account: "user_accounts"
8421
- }, ji = {
8431
+ }, Mi = {
8422
8432
  content_nodes: [
8423
8433
  "id",
8424
8434
  "title",
@@ -8475,11 +8485,11 @@ var ki = new e(), Ai = {
8475
8485
  "createdAt"
8476
8486
  ]
8477
8487
  };
8478
- ki.post("/validate-unique", async (e) => {
8488
+ Ai.post("/validate-unique", async (e) => {
8479
8489
  try {
8480
8490
  let t = e.get("db"), { entityType: n, field: r, value: i, excludeId: a } = await e.req.json();
8481
8491
  if (!r || i == null || String(i).trim() === "") return e.json({ isUnique: !0 });
8482
- let o = Ai[n] || "content_nodes", s = r.replace(/[^a-zA-Z0-9_]/g, ""), c = (ji[o] || ji.content_nodes).includes(s), l = -1;
8492
+ let o = ji[n] || "content_nodes", s = r.replace(/[^a-zA-Z0-9_]/g, ""), c = (Mi[o] || Mi.content_nodes).includes(s), l = -1;
8483
8493
  if (a != null && String(a).trim() !== "") {
8484
8494
  let e = Number(a);
8485
8495
  l = isNaN(e) ? String(a) : e;
@@ -8491,7 +8501,7 @@ ki.post("/validate-unique", async (e) => {
8491
8501
  } catch (t) {
8492
8502
  return console.error("[API Validation] Error validating global uniqueness:", t), e.json({ error: "Failed to validate uniqueness" }, 500);
8493
8503
  }
8494
- }), ki.post("/validate-unique-sibling", async (e) => {
8504
+ }), Ai.post("/validate-unique-sibling", async (e) => {
8495
8505
  try {
8496
8506
  let t = e.get("db"), { slug: n, treeId: r, parentId: i, excludeTreeNodeId: a } = await e.req.json();
8497
8507
  if (!n || !String(n).trim() || !r) return e.json({ isUnique: !0 });
@@ -8518,8 +8528,8 @@ ki.post("/validate-unique", async (e) => {
8518
8528
  });
8519
8529
  //#endregion
8520
8530
  //#region server/routes/admin/stats.ts
8521
- var Mi = new e();
8522
- Mi.get("/", async (e) => {
8531
+ var Ni = new e();
8532
+ Ni.get("/", async (e) => {
8523
8533
  try {
8524
8534
  let t = e.get("db"), n = await t.prepare("\n SELECT \n COUNT(*) as total,\n SUM(CASE WHEN isHidden = 0 THEN 1 ELSE 0 END) as published,\n SUM(CASE WHEN isHidden = 1 THEN 1 ELSE 0 END) as hidden\n FROM content_nodes\n ").get(), r = Number(n?.total) || 0, i = Number(n?.published) || 0, a = Number(n?.hidden) || 0, o = await t.prepare("\n SELECT \n (SELECT COUNT(*) FROM channels) as totalChannels,\n (SELECT COUNT(*) FROM trees) as totalTrees,\n (SELECT COUNT(*) FROM users) as totalUsers\n ").get(), s = await t.prepare("\n SELECT contentType as type, COUNT(*) as count \n FROM content_nodes \n GROUP BY contentType \n ORDER BY count DESC\n ").all(), c = Array.isArray(s) ? s : s?.results || [], l = await t.prepare("\n SELECT id, title, slug, contentType, isHidden, status, updatedAt \n FROM content_nodes \n ORDER BY updatedAt DESC \n LIMIT 5\n ").all(), u = (Array.isArray(l) ? l : l?.results || []).map((e) => ({
8525
8535
  ...e,
@@ -8575,19 +8585,19 @@ async function Q(e, t, n = []) {
8575
8585
  }
8576
8586
  return [];
8577
8587
  }
8578
- async function Ni(e, t, n = []) {
8588
+ async function Pi(e, t, n = []) {
8579
8589
  let r = e.prepare(t);
8580
8590
  if (typeof r.bind == "function") return await r.bind(...n).run();
8581
8591
  if (typeof r.run == "function") return await r.run(...n);
8582
8592
  }
8583
- function Pi(e, t, n) {
8593
+ function Fi(e, t, n) {
8584
8594
  let r = e || (t ? `/media/${t}` : "");
8585
8595
  return r && n && r.startsWith(`https://${n}/`) && !r.includes("/media/") && (r = r.replace(`https://${n}/`, `https://${n}/media/`)), r;
8586
8596
  }
8587
- async function Fi(e, t, n) {
8597
+ async function Ii(e, t, n) {
8588
8598
  let r = new Y(e.env), i = await Q(t, "\n SELECT cdnUrl, storageKeyPrivate\n FROM assets\n WHERE id = ? OR parentAssetId = ?\n ", [n, n]), a = [];
8589
8599
  for (let t of i) {
8590
- let n = Pi(t.cdnUrl, t.storageKeyPrivate, e.env?.CDN_DOMAIN);
8600
+ let n = Fi(t.cdnUrl, t.storageKeyPrivate, e.env?.CDN_DOMAIN);
8591
8601
  n && a.push(n);
8592
8602
  }
8593
8603
  let o = await Q(t, "\n SELECT DISTINCT cn.id, cn.slug, cn.status\n FROM node_assets na\n INNER JOIN content_nodes cn ON na.nodeId = cn.id\n LEFT JOIN assets crop ON na.assetId = crop.id\n WHERE cn.status = 'published' AND (\n na.assetId = ?\n OR crop.parentAssetId = ?\n OR crop.id = (SELECT parentAssetId FROM assets WHERE id = ?)\n )\n ", [
@@ -8664,7 +8674,7 @@ Z.get("/", async (e) => {
8664
8674
  ...JSON.parse(t.dataJson || "{}")
8665
8675
  };
8666
8676
  } catch {}
8667
- let r = Pi(t.cdnUrl, t.storageKeyPrivate, e.env?.CDN_DOMAIN);
8677
+ let r = Fi(t.cdnUrl, t.storageKeyPrivate, e.env?.CDN_DOMAIN);
8668
8678
  return {
8669
8679
  id: t.id,
8670
8680
  filename: t.filename || "Untitled Asset",
@@ -8707,7 +8717,7 @@ Z.get("/", async (e) => {
8707
8717
  let y = e.env.CDN_DOMAIN, b = v.replace(/^\//, ""), x = y ? `https://${y}/media/${b}` : `/media/${b}`, S = i.type || "application/octet-stream", C = i.size || 0, w = e.get("userId"), T = typeof w == "string" && w.trim().length > 0 ? w : null;
8708
8718
  T && (await Q(t, "SELECT id FROM users WHERE id = ?", [T])).length === 0 && (T = null);
8709
8719
  let E = +!!h;
8710
- await Ni(t, "\n INSERT INTO assets (id, filename, mimeType, sizeBytes, storageKeyPrivate, cdnUrl, createdById, isSystemVariant, parentAssetId, cropCoordinatesJson)\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n ", [
8720
+ await Pi(t, "\n INSERT INTO assets (id, filename, mimeType, sizeBytes, storageKeyPrivate, cdnUrl, createdById, isSystemVariant, parentAssetId, cropCoordinatesJson)\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n ", [
8711
8721
  p,
8712
8722
  i.name,
8713
8723
  S,
@@ -8722,7 +8732,7 @@ Z.get("/", async (e) => {
8722
8732
  let D = x;
8723
8733
  if (s) {
8724
8734
  let n = await Q(t, "SELECT cdnUrl, storageKeyPrivate FROM assets WHERE id = ?", [s]);
8725
- n.length > 0 && (D = Pi(n[0].cdnUrl, n[0].storageKeyPrivate, y)), await Fi(e, t, s);
8735
+ n.length > 0 && (D = Fi(n[0].cdnUrl, n[0].storageKeyPrivate, y)), await Ii(e, t, s);
8726
8736
  }
8727
8737
  return e.json({
8728
8738
  id: p,
@@ -8764,7 +8774,7 @@ Z.get("/", async (e) => {
8764
8774
  ...JSON.parse(i.dataJson || "{}")
8765
8775
  };
8766
8776
  } catch {}
8767
- let l = Pi(i.cdnUrl, i.storageKeyPrivate, e.env?.CDN_DOMAIN);
8777
+ let l = Fi(i.cdnUrl, i.storageKeyPrivate, e.env?.CDN_DOMAIN);
8768
8778
  return e.json({
8769
8779
  id: i.id,
8770
8780
  filename: i.filename,
@@ -8791,7 +8801,7 @@ Z.get("/", async (e) => {
8791
8801
  createdAt: t.createdAt,
8792
8802
  parentAssetId: t.parentAssetId || i.id,
8793
8803
  cropCoordinates: n,
8794
- url: Pi(t.cdnUrl, t.storageKeyPrivate, e.env?.CDN_DOMAIN),
8804
+ url: Fi(t.cdnUrl, t.storageKeyPrivate, e.env?.CDN_DOMAIN),
8795
8805
  originalUrl: l
8796
8806
  };
8797
8807
  })
@@ -8807,18 +8817,18 @@ Z.get("/", async (e) => {
8807
8817
  try {
8808
8818
  o = JSON.parse(a.dataJson || "{}");
8809
8819
  } catch {}
8810
- return r.title !== void 0 && (o.title = r.title), r.alt !== void 0 && (o.alt = r.alt), r.description !== void 0 && (o.description = r.description), await Ni(t, "UPDATE assets SET filename = ?, dataJson = ?, updatedAt = CURRENT_TIMESTAMP WHERE id = ?", [
8820
+ return r.title !== void 0 && (o.title = r.title), r.alt !== void 0 && (o.alt = r.alt), r.description !== void 0 && (o.description = r.description), await Pi(t, "UPDATE assets SET filename = ?, dataJson = ?, updatedAt = CURRENT_TIMESTAMP WHERE id = ?", [
8811
8821
  r.filename === void 0 ? a.filename : r.filename,
8812
8822
  JSON.stringify(o),
8813
8823
  n
8814
- ]), await Fi(e, t, n), e.json({ success: !0 });
8824
+ ]), await Ii(e, t, n), e.json({ success: !0 });
8815
8825
  } catch (t) {
8816
8826
  return console.error("❌ [Asset Update Error]:", t), e.json({ error: "Failed to update asset" }, 500);
8817
8827
  }
8818
8828
  }), Z.delete("/:id", async (e) => {
8819
8829
  try {
8820
8830
  let t = u(e), n = e.req.param("id"), r = (await Q(t, "SELECT id, filename, isSystemVariant FROM assets WHERE id = ?", [n]))[0];
8821
- return r ? (await Fi(e, t, n), r.isSystemVariant ? await Ni(t, "UPDATE assets SET deletedAt = CURRENT_TIMESTAMP WHERE id = ?", [n]) : await Ni(t, "UPDATE assets\n SET deletedAt = CURRENT_TIMESTAMP\n WHERE id = ? OR parentAssetId = ? OR (isSystemVariant = 1 AND (filename LIKE ? OR filename LIKE ?))", [
8831
+ return r ? (await Ii(e, t, n), r.isSystemVariant ? await Pi(t, "UPDATE assets SET deletedAt = CURRENT_TIMESTAMP WHERE id = ?", [n]) : await Pi(t, "UPDATE assets\n SET deletedAt = CURRENT_TIMESTAMP\n WHERE id = ? OR parentAssetId = ? OR (isSystemVariant = 1 AND (filename LIKE ? OR filename LIKE ?))", [
8822
8832
  n,
8823
8833
  n,
8824
8834
  `crop_%${r.filename ? r.filename.replace(/\.[^/.]+$/, "") : ""}%`,
@@ -8839,12 +8849,12 @@ Z.get("/", async (e) => {
8839
8849
  let t = u(e), n = await e.req.json(), r = n.id || n.assetId;
8840
8850
  if (!r) return e.json({ error: "Asset ID required" }, 400);
8841
8851
  let i = (await Q(t, "SELECT id, filename FROM assets WHERE id = ?", [r]))[0];
8842
- return i ? (await Ni(t, "UPDATE assets \n SET deletedAt = NULL \n WHERE id = ? OR parentAssetId = ? OR (isSystemVariant = 1 AND (filename LIKE ? OR filename LIKE ?))", [
8852
+ return i ? (await Pi(t, "UPDATE assets \n SET deletedAt = NULL \n WHERE id = ? OR parentAssetId = ? OR (isSystemVariant = 1 AND (filename LIKE ? OR filename LIKE ?))", [
8843
8853
  r,
8844
8854
  r,
8845
8855
  `crop_%${i.filename ? i.filename.replace(/\.[^/.]+$/, "") : ""}%`,
8846
8856
  `%${r}%`
8847
- ]), await Fi(e, t, r), e.json({
8857
+ ]), await Ii(e, t, r), e.json({
8848
8858
  success: !0,
8849
8859
  id: r,
8850
8860
  restored: !0
@@ -8859,7 +8869,7 @@ Z.get("/", async (e) => {
8859
8869
  try {
8860
8870
  let t = u(e), n = ri(e.env), r = e.req.param("id"), i = (await Q(t, "SELECT id, filename, storageKeyPrivate, isSystemVariant FROM assets WHERE id = ?", [r]))[0];
8861
8871
  if (!i) return e.json({ error: "Asset not found" }, 404);
8862
- await Fi(e, t, r);
8872
+ await Ii(e, t, r);
8863
8873
  let a = [i];
8864
8874
  i.isSystemVariant || (a = [i, ...await Q(t, "SELECT id, storageKeyPrivate FROM assets \n WHERE parentAssetId = ? OR (isSystemVariant = 1 AND (filename LIKE ? OR filename LIKE ?))", [
8865
8875
  r,
@@ -8875,7 +8885,7 @@ Z.get("/", async (e) => {
8875
8885
  }
8876
8886
  }
8877
8887
  let s = o.map(() => "?").join(",");
8878
- return await Ni(t, `DELETE FROM node_assets WHERE assetId IN (${s})`, o), await Ni(t, `DELETE FROM assets WHERE id IN (${s})`, o), e.json({
8888
+ return await Pi(t, `DELETE FROM node_assets WHERE assetId IN (${s})`, o), await Pi(t, `DELETE FROM assets WHERE id IN (${s})`, o), e.json({
8879
8889
  success: !0,
8880
8890
  id: r,
8881
8891
  purged: !0,
@@ -8891,8 +8901,8 @@ Z.get("/", async (e) => {
8891
8901
  });
8892
8902
  //#endregion
8893
8903
  //#region server/routes/public/node.ts
8894
- var Ii = new e();
8895
- function Li() {
8904
+ var Li = new e();
8905
+ function Ri() {
8896
8906
  return {
8897
8907
  fullPath: /* @__PURE__ */ new Map(),
8898
8908
  treeEdges: /* @__PURE__ */ new Map(),
@@ -8900,10 +8910,10 @@ function Li() {
8900
8910
  assetUrls: /* @__PURE__ */ new Map()
8901
8911
  };
8902
8912
  }
8903
- function Ri(...e) {
8913
+ function zi(...e) {
8904
8914
  return e.map((e) => String(e ?? "")).join(":");
8905
8915
  }
8906
- function zi(e, t) {
8916
+ function Bi(e, t) {
8907
8917
  let n = Date.now();
8908
8918
  if (e && String(e).trim() !== "") {
8909
8919
  let t = Date.parse(e);
@@ -8915,7 +8925,7 @@ function zi(e, t) {
8915
8925
  }
8916
8926
  return !0;
8917
8927
  }
8918
- async function Bi(e, t, n) {
8928
+ async function Vi(e, t, n) {
8919
8929
  let r = t.filter((e) => e.componentId === "content-feed" || e.componentId === "article-list");
8920
8930
  await Promise.all(r.map(async (t) => {
8921
8931
  let r = t.data || {}, i = r.nodeType || "article", a = Number(r.limit) || 12, o = r.sortBy || "updatedAt", s = "FROM content_nodes WHERE contentType = ? AND isHidden = 0 AND (status = 'published' OR status IS NULL)", c = [i];
@@ -8936,7 +8946,7 @@ async function Bi(e, t, n) {
8936
8946
  if (e.dataJson) try {
8937
8947
  t = typeof e.dataJson == "string" ? JSON.parse(e.dataJson) : e.dataJson;
8938
8948
  } catch {}
8939
- return zi(t.startShowingAt, t.stopShowingAt) ? {
8949
+ return Bi(t.startShowingAt, t.stopShowingAt) ? {
8940
8950
  id: e.id,
8941
8951
  title: e.title,
8942
8952
  slug: e.slug,
@@ -8953,7 +8963,7 @@ async function Bi(e, t, n) {
8953
8963
  }
8954
8964
  }));
8955
8965
  }
8956
- async function Vi(e, t, n, r, i = !1, a) {
8966
+ async function Hi(e, t, n, r, i = !1, a) {
8957
8967
  if (!t) return { blocks: [] };
8958
8968
  let o = await e.prepare("\n WITH RECURSIVE ancestor_path(id, contentId, title, slug, parentId, level) AS (\n SELECT t.id, t.contentId, c.title, c.slug, t.parentId, 0\n FROM tree_nodes t\n INNER JOIN content_nodes c ON t.contentId = c.id\n WHERE t.id = ? OR c.id = ?\n\n UNION ALL\n\n SELECT t.id, t.contentId, c.title, c.slug, t.parentId, ap.level + 1\n FROM tree_nodes t\n INNER JOIN content_nodes c ON t.contentId = c.id\n INNER JOIN ancestor_path ap ON t.id = ap.parentId\n )\n SELECT *\n FROM ancestor_path\n ORDER BY level ASC\n ").all(t, t), s = Array.isArray(o) ? o : o?.results || [];
8959
8969
  if (!s || s.length === 0) return { blocks: [] };
@@ -9009,10 +9019,10 @@ async function Vi(e, t, n, r, i = !1, a) {
9009
9019
  try {
9010
9020
  a = (typeof t.dataJson == "string" ? JSON.parse(t.dataJson) : t.dataJson) || {};
9011
9021
  } catch {}
9012
- let o = a.hidden === !0 || a.hidden === 1 || a.hidden === "1" || a.hidden === "true", s = zi(a.startShowingAt, a.stopShowingAt);
9022
+ let o = a.hidden === !0 || a.hidden === 1 || a.hidden === "1" || a.hidden === "true", s = Bi(a.startShowingAt, a.stopShowingAt);
9013
9023
  if (!i && (o || !s)) return null;
9014
- let c = t.elementType || t.componentId || "text-block", l = r.blocks?.[c]?.fields || r.elements?.[c]?.fields || r.components?.[c]?.fields || {}, u = String(a.blockId || a._instanceId || a.id || t.blockId || t.id), d = Hi(a, l);
9015
- return d = await si(e, d), d = Ui(d), d.blockId = u, {
9024
+ let c = t.elementType || t.componentId || "text-block", l = r.blocks?.[c]?.fields || r.elements?.[c]?.fields || r.components?.[c]?.fields || {}, u = String(a.blockId || a._instanceId || a.id || t.blockId || t.id), d = Ui(a, l);
9025
+ return d = await si(e, d), d = Wi(d), d.blockId = u, {
9016
9026
  region: t.region || n,
9017
9027
  block: {
9018
9028
  instanceId: t.id,
@@ -9032,7 +9042,7 @@ async function Vi(e, t, n, r, i = !1, a) {
9032
9042
  }
9033
9043
  return { blocks: [] };
9034
9044
  }
9035
- function Hi(e, t = {}) {
9045
+ function Ui(e, t = {}) {
9036
9046
  let n = {};
9037
9047
  for (let [r, i] of Object.entries(e)) {
9038
9048
  if (r.endsWith("_meta") || r === "disabledRegions" || r === "hidden" || r === "is_hidden" || r === "isHidden" || r === "status" || r === "startShowingAt" || r === "stopShowingAt" || r === "slug" || r === "title" || r === "id" || r.startsWith("_")) continue;
@@ -9041,14 +9051,14 @@ function Hi(e, t = {}) {
9041
9051
  }
9042
9052
  return n;
9043
9053
  }
9044
- function Ui(e) {
9045
- if (Array.isArray(e)) return e.map(Ui);
9054
+ function Wi(e) {
9055
+ if (Array.isArray(e)) return e.map(Wi);
9046
9056
  if (!e || typeof e != "object") return e;
9047
9057
  if (typeof e.id == "string" && e.id.startsWith("ast_") && typeof e.url == "string") {
9048
9058
  let t = e.metadataOverrides || {}, n = e.variants && typeof e.variants == "object" ? e.variants : {}, r = Object.entries(n).find(([, t]) => t?.id === e.id)?.[0], i = r ? {
9049
9059
  ...t,
9050
9060
  ...t.crops?.[r] || {}
9051
- } : t, a = Object.fromEntries(Object.entries(n).filter(([, t]) => t?.id !== e.id).map(([t, n]) => [t, Ui({
9061
+ } : t, a = Object.fromEntries(Object.entries(n).filter(([, t]) => t?.id !== e.id).map(([t, n]) => [t, Wi({
9052
9062
  ...n,
9053
9063
  title: n?.title ?? e.title ?? "",
9054
9064
  alt: n?.alt ?? e.alt ?? "",
@@ -9062,9 +9072,9 @@ function Ui(e) {
9062
9072
  ...Object.keys(a).length > 0 ? { variants: a } : {}
9063
9073
  };
9064
9074
  }
9065
- return Object.fromEntries(Object.entries(e).map(([e, t]) => [e, Ui(t)]));
9075
+ return Object.fromEntries(Object.entries(e).map(([e, t]) => [e, Wi(t)]));
9066
9076
  }
9067
- async function Wi(e, t, n) {
9077
+ async function Gi(e, t, n) {
9068
9078
  if (typeof t == "string") {
9069
9079
  if (!t.includes("#node:") && !t.includes("data-node-id") && !t.includes("#asset:") && !t.includes("data-asset-id")) return t;
9070
9080
  let r = (e, t) => {
@@ -9090,9 +9100,9 @@ async function Wi(e, t, n) {
9090
9100
  return await Promise.all(Array.from(t.matchAll(h)).map(async (t) => {
9091
9101
  let i = t[1], a = r(i, "data-node-id"), o = r(i, "data-tree-id");
9092
9102
  if (!a || !o) return;
9093
- let s = await Ki(e, a, o, n);
9103
+ let s = await qi(e, a, o, n);
9094
9104
  if (s?.treeNodeId) {
9095
- let t = await Xi(e, String(s.treeNodeId), o, n);
9105
+ let t = await Zi(e, String(s.treeNodeId), o, n);
9096
9106
  m.set(`${a}:${o}`, t);
9097
9107
  }
9098
9108
  })), t.replace(h, (e, t) => {
@@ -9112,39 +9122,39 @@ async function Wi(e, t, n) {
9112
9122
  return /href\s*=\s*["'][^"']*["']/i.test(_) ? _ = _.replace(/href\s*=\s*["'][^"']*["']/i, `href="${g || "/"}"`) : _ += ` href="${g || "/"}"`, `<a ${_}>`;
9113
9123
  });
9114
9124
  }
9115
- if (Array.isArray(t)) return Promise.all(t.map((t) => Wi(e, t, n)));
9125
+ if (Array.isArray(t)) return Promise.all(t.map((t) => Gi(e, t, n)));
9116
9126
  if (t && typeof t == "object") {
9117
9127
  if (typeof t.href == "string" && (t.href.startsWith("#node:") || t.href.startsWith("#asset:"))) return {
9118
9128
  ...t,
9119
- href: await Gi(e, t, n)
9129
+ href: await Ki(e, t, n)
9120
9130
  };
9121
- let r = await Promise.all(Object.entries(t).map(async ([t, r]) => [t, await Wi(e, r, n)]));
9131
+ let r = await Promise.all(Object.entries(t).map(async ([t, r]) => [t, await Gi(e, r, n)]));
9122
9132
  return Object.fromEntries(r);
9123
9133
  }
9124
9134
  return t;
9125
9135
  }
9126
- async function Gi(e, t, n) {
9136
+ async function Ki(e, t, n) {
9127
9137
  let r = t.href.match(/^#node:(.+)$/), i = t.href.match(/^#asset:(.+)$/);
9128
- if (i) return Ji(e, i[1], n);
9138
+ if (i) return Yi(e, i[1], n);
9129
9139
  if (!r) return t.href;
9130
9140
  let a = r[1];
9131
9141
  if (t.treeId) {
9132
- let r = await Ki(e, a, String(t.treeId), n);
9142
+ let r = await qi(e, a, String(t.treeId), n);
9133
9143
  if (r?.treeNodeId) {
9134
- let i = await Xi(e, String(r.treeNodeId), String(t.treeId), n);
9144
+ let i = await Zi(e, String(r.treeNodeId), String(t.treeId), n);
9135
9145
  if (i) return i;
9136
9146
  }
9137
9147
  }
9138
- let o = await qi(e, a, n);
9148
+ let o = await Ji(e, a, n);
9139
9149
  return o === void 0 ? "#" : `/${o}`;
9140
9150
  }
9141
- async function Ki(e, t, n, r) {
9142
- let i = Ri(t, n), a = r.treeEdges.get(i);
9151
+ async function qi(e, t, n, r) {
9152
+ let i = zi(t, n), a = r.treeEdges.get(i);
9143
9153
  if (a) return a;
9144
9154
  let o = e.prepare("\n SELECT id as treeNodeId\n FROM tree_nodes\n WHERE contentId = ?\n AND treeId = ?\n LIMIT 1\n ").get(t, n);
9145
9155
  return r.treeEdges.set(i, Promise.resolve(o)), o;
9146
9156
  }
9147
- async function qi(e, t, n) {
9157
+ async function Ji(e, t, n) {
9148
9158
  let r = String(t), i = n.nodeSlugs.get(r);
9149
9159
  if (i) return i;
9150
9160
  let a = (async () => {
@@ -9153,7 +9163,7 @@ async function qi(e, t, n) {
9153
9163
  })();
9154
9164
  return n.nodeSlugs.set(r, a), a;
9155
9165
  }
9156
- async function Ji(e, t, n) {
9166
+ async function Yi(e, t, n) {
9157
9167
  let r = String(t), i = n.assetUrls.get(r);
9158
9168
  if (i) return i;
9159
9169
  let a = (async () => {
@@ -9162,7 +9172,7 @@ async function Ji(e, t, n) {
9162
9172
  })();
9163
9173
  return n.assetUrls.set(r, a), a;
9164
9174
  }
9165
- function Yi(e) {
9175
+ function Xi(e) {
9166
9176
  let t = e.socialImage;
9167
9177
  if (!t || typeof t != "object") return null;
9168
9178
  let n = (e, t) => {
@@ -9193,9 +9203,9 @@ function Yi(e) {
9193
9203
  ])
9194
9204
  };
9195
9205
  }
9196
- async function Xi(e, t, n, r) {
9206
+ async function Zi(e, t, n, r) {
9197
9207
  if (!t) return "";
9198
- let i = Ri(t, n);
9208
+ let i = zi(t, n);
9199
9209
  if (r) {
9200
9210
  let e = r.fullPath.get(i);
9201
9211
  if (e) return e;
@@ -9210,7 +9220,7 @@ async function Xi(e, t, n, r) {
9210
9220
  })();
9211
9221
  return r && r.fullPath.set(i, a), a;
9212
9222
  }
9213
- async function Zi(e, t, n, r, i) {
9223
+ async function Qi(e, t, n, r, i) {
9214
9224
  let a = {}, o = null;
9215
9225
  if (t) {
9216
9226
  let n = await e.prepare("\n WITH RECURSIVE ancestor_path(id, contentId, title, slug, parentId, level) AS (\n SELECT t.id, t.contentId, c.title, c.slug, t.parentId, 0\n FROM tree_nodes t\n INNER JOIN content_nodes c ON t.contentId = c.id\n WHERE t.id = ? OR c.id = ?\n\n UNION ALL\n\n SELECT t.id, t.contentId, c.title, c.slug, t.parentId, ap.level + 1\n FROM tree_nodes t\n INNER JOIN content_nodes c ON t.contentId = c.id\n INNER JOIN ancestor_path ap ON t.id = ap.parentId\n )\n SELECT c.dataJson, c.draftDataJson\n FROM ancestor_path ap\n INNER JOIN content_nodes c ON ap.contentId = c.id\n ORDER BY ap.level ASC\n ").all(t, t), i = Array.isArray(n) ? n : n?.results || [], s = /* @__PURE__ */ new Set([
@@ -9248,20 +9258,20 @@ async function Zi(e, t, n, r, i) {
9248
9258
  inheritedFields: a
9249
9259
  };
9250
9260
  }
9251
- function Qi(e) {
9261
+ function $i(e) {
9252
9262
  let t = Number(e?.env?.CMS_NODE_CACHE_TTL);
9253
9263
  return Number.isFinite(t) && t >= 60 ? Math.floor(t) : 300;
9254
9264
  }
9255
- async function $i(e, t, n, r) {
9265
+ async function ea(e, t, n, r) {
9256
9266
  try {
9257
9267
  await e.set(t, n, r);
9258
9268
  } catch (e) {
9259
9269
  console.warn("[CMS Cache] Failed to write node response to cache:", e);
9260
9270
  }
9261
9271
  }
9262
- Ii.get("/*", async (e) => {
9272
+ Li.get("/*", async (e) => {
9263
9273
  try {
9264
- let t = e.get("db"), n = Li(), r = new URL(e.req.url).pathname.match(/\/node\/(.+)$/), i = (r ? r[1] : "home").replace(/^\/+|\/+$/g, ""), a = e.req.query("channelId") || e.req.query("channel") || "1", o = e.req.query("lang") || "en", s = e.req.query("preview") === "true", c = isNaN(Number(a)) ? await t.prepare("SELECT * FROM channels WHERE key = ?").get(a) : await t.prepare("SELECT * FROM channels WHERE id = ?").get(Number(a));
9274
+ let t = e.get("db"), n = Ri(), r = new URL(e.req.url).pathname.match(/\/node\/(.+)$/), i = (r ? r[1] : "home").replace(/^\/+|\/+$/g, ""), a = e.req.query("channelId") || e.req.query("channel") || "1", o = e.req.query("lang") || "en", s = e.req.query("preview") === "true", c = isNaN(Number(a)) ? await t.prepare("SELECT * FROM channels WHERE key = ?").get(a) : await t.prepare("SELECT * FROM channels WHERE id = ?").get(Number(a));
9265
9275
  if (!c) return e.json({ error: `Channel '${a}' not found` }, 404);
9266
9276
  let l = c.status === "disabled" || c.status === "inactive" || c.isEnabled === 0 || c.isEnabled === !1;
9267
9277
  if (!s && l) return e.json({ error: `Channel '${c.key || a}' is currently inactive` }, 404);
@@ -9270,38 +9280,33 @@ Ii.get("/*", async (e) => {
9270
9280
  let t = await f.get(p);
9271
9281
  if (t) return e.header("X-Cache", "HIT"), e.json(t);
9272
9282
  }
9273
- let m = ui(e.env?.BUNDLED_DEFINITIONS), h = !isNaN(Number(i)) && i.length > 0, g = null, _ = null, v = e.req.query("treeId");
9274
- if (h) g = u === null ? await t.prepare("SELECT * FROM content_nodes WHERE id = ?").get(Number(i)) : await t.prepare("\n SELECT cn.*\n FROM content_nodes cn\n INNER JOIN node_channels nc\n ON cn.id = nc.nodeId\n WHERE cn.id = ?\n AND nc.channelId = ?\n ").get(Number(i), u);
9275
- else {
9276
- let e = i.split("/"), r = e[e.length - 1], a = "/" + i.replace(/^\/+|\/+$/g, ""), o = `
9277
- SELECT
9278
- cn.*,
9279
- tn.id as treeNodeId,
9280
- tn.parentId,
9281
- tn.treeId
9282
- FROM content_nodes cn
9283
- INNER JOIN tree_nodes tn
9284
- ON cn.id = tn.contentId
9285
- ${u === null ? "" : "INNER JOIN node_channels nc ON cn.id = nc.nodeId"}
9286
- WHERE cn.slug = ?
9287
- ${u === null ? "" : "AND nc.channelId = ?"}
9288
- `, s = u === null ? [r] : [r, u], c = await t.prepare(o).all(...s), l = Array.isArray(c) ? c : c?.results || [];
9289
- if (l.length > 0) {
9290
- let e = await Promise.all(l.map(async (e) => ({
9291
- candidate: e,
9292
- calculatedPath: await Xi(t, String(e.treeNodeId), String(e.treeId), n)
9293
- }))), r = a.replace(/^\/+|\/+$/g, "");
9294
- for (let { candidate: t, calculatedPath: n } of e) {
9295
- let e = n.replace(/^\/+|\/+$/g, "");
9296
- if (e === r || r === "home" && (e === "" || e === "home")) {
9297
- g = t, _ = t;
9298
- break;
9299
- }
9283
+ let m = ui(e.env?.BUNDLED_DEFINITIONS), h = /^\d+$/.test(i), g = null, _ = null, v = e.req.query("treeId"), y = i.split("/"), b = y[y.length - 1], x = "/" + i.replace(/^\/+|\/+$/g, ""), S = `
9284
+ SELECT
9285
+ cn.*,
9286
+ tn.id as treeNodeId,
9287
+ tn.parentId,
9288
+ tn.treeId
9289
+ FROM content_nodes cn
9290
+ INNER JOIN tree_nodes tn
9291
+ ON cn.id = tn.contentId
9292
+ ${u === null ? "" : "INNER JOIN node_channels nc ON cn.id = nc.nodeId"}
9293
+ WHERE cn.slug = ?
9294
+ ${u === null ? "" : "AND nc.channelId = ?"}
9295
+ `, C = u === null ? [b] : [b, u], w = await t.prepare(S).all(...C), T = Array.isArray(w) ? w : w?.results || [];
9296
+ if (T.length > 0) {
9297
+ let e = await Promise.all(T.map(async (e) => ({
9298
+ candidate: e,
9299
+ calculatedPath: await Zi(t, String(e.treeNodeId), String(e.treeId), n)
9300
+ }))), r = x.replace(/^\/+|\/+$/g, "");
9301
+ for (let { candidate: t, calculatedPath: n } of e) {
9302
+ let e = n.replace(/^\/+|\/+$/g, "");
9303
+ if (e === r || r === "home" && (e === "" || e === "home")) {
9304
+ g = t, _ = t;
9305
+ break;
9300
9306
  }
9301
9307
  }
9302
- !g && e.length === 1 && (g = u === null ? await t.prepare("SELECT * FROM content_nodes WHERE slug = ?").get(r) : await t.prepare("\n SELECT cn.*\n FROM content_nodes cn\n INNER JOIN node_channels nc\n ON cn.id = nc.nodeId\n WHERE cn.slug = ?\n AND nc.channelId = ?\n ").get(r, u));
9303
9308
  }
9304
- if (!g) return e.json({ error: `Node '${i}' not found for Channel '${a}'` }, 404);
9309
+ if (!g && y.length === 1 && (g = u === null ? await t.prepare("SELECT * FROM content_nodes WHERE slug = ?").get(b) : await t.prepare("\n SELECT cn.*\n FROM content_nodes cn\n INNER JOIN node_channels nc\n ON cn.id = nc.nodeId\n WHERE cn.slug = ?\n AND nc.channelId = ?\n ").get(b, u)), !g && h && (g = u === null ? await t.prepare("SELECT * FROM content_nodes WHERE id = ?").get(Number(i)) : await t.prepare("\n SELECT cn.*\n FROM content_nodes cn\n INNER JOIN node_channels nc\n ON cn.id = nc.nodeId\n WHERE cn.id = ?\n AND nc.channelId = ?\n ").get(Number(i), u)), !g) return e.json({ error: `Node '${i}' not found for Channel '${a}'` }, 404);
9305
9310
  if (!_) {
9306
9311
  let e = v ? [g.id, v] : [g.id];
9307
9312
  _ = await t.prepare(`
@@ -9315,41 +9320,41 @@ Ii.get("/*", async (e) => {
9315
9320
  LIMIT 1
9316
9321
  `).get(...e);
9317
9322
  }
9318
- let y = _?.treeId || v || "main-nav", b = _?.parentId || null, x = _?.treeNodeId ? await Xi(t, String(_.treeNodeId), String(y), n) : `/${(g.slug || "").replace(/^\/+|\/+$/g, "")}`, S = {
9323
+ let E = _?.treeId || v || "main-nav", D = _?.parentId || null, ee = _?.treeNodeId ? await Zi(t, String(_.treeNodeId), String(E), n) : `/${(g.slug || "").replace(/^\/+|\/+$/g, "")}`, O = {
9319
9324
  id: g.id,
9320
9325
  title: g.title,
9321
9326
  slug: g.slug,
9322
9327
  language: g.language || o || "en",
9323
- path: x === "" ? "/" : x,
9328
+ path: ee === "" ? "/" : ee,
9324
9329
  nodeType: g.contentType,
9325
9330
  createdAt: g.createdAt,
9326
9331
  updatedAt: g.updatedAt
9327
- }, C = g.contentType || "node", w = m.nodes?.[C] || Object.values(m.nodes || {})[0] || {}, T = { ...w.fields || {} };
9328
- w.tabs && Object.values(w.tabs).forEach((e) => {
9329
- Object.assign(T, e.fields || {});
9332
+ }, k = g.contentType || "node", A = m.nodes?.[k] || Object.values(m.nodes || {})[0] || {}, te = { ...A.fields || {} };
9333
+ A.tabs && Object.values(A.tabs).forEach((e) => {
9334
+ Object.assign(te, e.fields || {});
9330
9335
  });
9331
- let E = {}, D = null, ee = null, O = !1, k = {}, A = s && g.draftDataJson ? g.draftDataJson : g.dataJson || g.draftDataJson;
9332
- if (A) try {
9333
- k = typeof A == "string" ? JSON.parse(A) : A;
9336
+ let ne = {}, re = null, ie = null, ae = !1, j = {}, oe = s && g.draftDataJson ? g.draftDataJson : g.dataJson || g.draftDataJson;
9337
+ if (oe) try {
9338
+ j = typeof oe == "string" ? JSON.parse(oe) : oe;
9334
9339
  } catch {}
9335
- k.disabledRegions && (E = k.disabledRegions), O = k.hidden === !0 || k.hidden === 1 || k.hidden === "1" || k.hidden === "true", D = k.startShowingAt || null, ee = k.stopShowingAt || null;
9336
- let te = k.layoutId, ne = te && te !== "inherit", { resolvedLayoutId: re, inheritedFields: ie } = await Zi(t, b, y, s, T), ae = ne ? te : re || w.defaultLayout || null;
9337
- for (let [e, t] of Object.entries(ie)) (k[e] === void 0 || k[e] === null || k[e] === "" || k[e] === "inherit") && t !== void 0 && (k[e] = t);
9338
- let j = await si(t, Hi(k, T));
9339
- j = Ui(j), j = await Wi(t, j, n);
9340
- let oe = Yi(j);
9341
- delete j.socialImage, delete j.fbImage, delete j.xImage, delete j.whatsappImage, oe && (j.socialImages = oe), S.slug = g.slug, S.title = g.title, Object.assign(S, j), S.layoutId = ae;
9342
- let se = !!g.isHidden || O, ce = !zi(D, ee);
9343
- if (!s && (se || ce)) return e.json({ error: "Node is hidden or outside its scheduled publishing window" }, 404);
9344
- let le = [];
9340
+ j.disabledRegions && (ne = j.disabledRegions), ae = j.hidden === !0 || j.hidden === 1 || j.hidden === "1" || j.hidden === "true", re = j.startShowingAt || null, ie = j.stopShowingAt || null;
9341
+ let M = j.layoutId, se = M && M !== "inherit", { resolvedLayoutId: ce, inheritedFields: le } = await Qi(t, D, E, s, te), ue = se ? M : ce || A.defaultLayout || null;
9342
+ for (let [e, t] of Object.entries(le)) (j[e] === void 0 || j[e] === null || j[e] === "" || j[e] === "inherit") && t !== void 0 && (j[e] = t);
9343
+ let N = await si(t, Ui(j, te));
9344
+ N = Wi(N), N = await Gi(t, N, n);
9345
+ let P = Xi(N);
9346
+ delete N.socialImage, delete N.fbImage, delete N.xImage, delete N.whatsappImage, P && (N.socialImages = P), O.slug = g.slug, O.title = g.title, Object.assign(O, N), O.layoutId = ue;
9347
+ let de = Number(g.isHidden) === 1 || ae, fe = !Bi(re, ie);
9348
+ if (!s && (de || fe)) return e.json({ error: "Node is hidden or outside its scheduled publishing window" }, 404);
9349
+ let pe = [];
9345
9350
  if (_?.treeNodeId) {
9346
- let e = await t.prepare("\n SELECT\n t.id as treeNodeId,\n t.contentId as id,\n c.title,\n c.slug,\n c.language,\n c.contentType as nodeType,\n c.isHidden,\n c.dataJson,\n c.draftDataJson\n FROM tree_nodes t\n INNER JOIN content_nodes c\n ON t.contentId = c.id\n WHERE t.parentId = ?\n AND t.treeId = ?\n ORDER BY t.sortOrder ASC\n ").all(_.treeNodeId, y), n = Array.isArray(e) ? e : e?.results || [], r = S.path === "/" ? "" : S.path;
9347
- le = n.map((e) => {
9351
+ let e = await t.prepare("\n SELECT\n t.id as treeNodeId,\n t.contentId as id,\n c.title,\n c.slug,\n c.language,\n c.contentType as nodeType,\n c.isHidden,\n c.dataJson,\n c.draftDataJson\n FROM tree_nodes t\n INNER JOIN content_nodes c\n ON t.contentId = c.id\n WHERE t.parentId = ?\n AND t.treeId = ?\n ORDER BY t.sortOrder ASC\n ").all(_.treeNodeId, E), n = Array.isArray(e) ? e : e?.results || [], r = O.path === "/" ? "" : O.path;
9352
+ pe = n.map((e) => {
9348
9353
  let t = {}, n = s && e.draftDataJson ? e.draftDataJson : e.dataJson;
9349
9354
  try {
9350
9355
  t = (typeof n == "string" ? JSON.parse(n) : n) || {};
9351
9356
  } catch {}
9352
- let i = !!e.isHidden || t.hidden === !0 || t.hidden === 1 || t.hidden === "1", a = zi(t.startShowingAt, t.stopShowingAt), o = (e.slug || "").replace(/^\/+|\/+$/g, "");
9357
+ let i = Number(e.isHidden) === 1 || t.hidden === !0 || t.hidden === 1 || t.hidden === "1", a = Bi(t.startShowingAt, t.stopShowingAt), o = (e.slug || "").replace(/^\/+|\/+$/g, "");
9353
9358
  return !s && (i || !a) ? null : {
9354
9359
  treeNodeId: e.treeNodeId,
9355
9360
  id: e.id,
@@ -9361,18 +9366,18 @@ Ii.get("/*", async (e) => {
9361
9366
  };
9362
9367
  }).filter(Boolean);
9363
9368
  }
9364
- S.children = le;
9365
- let ue = +!!s, M = await t.prepare("\n SELECT *\n FROM content_blocks\n WHERE contentId = ?\n AND isDraft = ?\n ORDER BY sortOrder ASC\n ").all(g.id, ue), N = Array.isArray(M) ? M : M?.results || [];
9366
- N.length === 0 && !s && (M = await t.prepare("\n SELECT *\n FROM content_blocks\n WHERE contentId = ?\n ORDER BY sortOrder ASC\n ").all(g.id), N = Array.isArray(M) ? M : M?.results || []);
9367
- let P = {}, F = {}, de = await Promise.all(N.map(async (e) => {
9369
+ O.children = pe;
9370
+ let me = +!!s, F = await t.prepare("\n SELECT *\n FROM content_blocks\n WHERE contentId = ?\n AND isDraft = ?\n ORDER BY sortOrder ASC\n ").all(g.id, me), he = Array.isArray(F) ? F : F?.results || [];
9371
+ he.length === 0 && !s && (F = await t.prepare("\n SELECT *\n FROM content_blocks\n WHERE contentId = ?\n ORDER BY sortOrder ASC\n ").all(g.id), he = Array.isArray(F) ? F : F?.results || []);
9372
+ let I = {}, L = {}, ge = await Promise.all(he.map(async (e) => {
9368
9373
  let r = e.region || "main", i = {};
9369
9374
  try {
9370
9375
  i = (typeof e.dataJson == "string" ? JSON.parse(e.dataJson) : e.dataJson) || {};
9371
9376
  } catch {}
9372
- let a = i.hidden === !0 || i.hidden === 1 || i.hidden === "1" || i.hidden === "true", o = zi(i.startShowingAt, i.stopShowingAt);
9377
+ let a = i.hidden === !0 || i.hidden === 1 || i.hidden === "1" || i.hidden === "true", o = Bi(i.startShowingAt, i.stopShowingAt);
9373
9378
  if (!s && (a || !o)) return null;
9374
- let c = e.elementType || e.componentId || "text-block", l = m.blocks?.[c]?.fields || m.elements?.[c]?.fields || m.components?.[c]?.fields || {}, u = String(i.blockId || i._instanceId || i.id || e.blockId || e.id), d = Hi(i, l);
9375
- return d = await si(t, d), d = Ui(d), d = await Wi(t, d, n), d.blockId = u, {
9379
+ let c = e.elementType || e.componentId || "text-block", l = m.blocks?.[c]?.fields || m.elements?.[c]?.fields || m.components?.[c]?.fields || {}, u = String(i.blockId || i._instanceId || i.id || e.blockId || e.id), d = Ui(i, l);
9380
+ return d = await si(t, d), d = Wi(d), d = await Gi(t, d, n), d.blockId = u, {
9376
9381
  region: r,
9377
9382
  block: {
9378
9383
  instanceId: e.id,
@@ -9382,8 +9387,8 @@ Ii.get("/*", async (e) => {
9382
9387
  }
9383
9388
  };
9384
9389
  }));
9385
- for (let e of de) e && (P[e.region] || (P[e.region] = [], F[e.region] = { isInherited: !1 }), P[e.region].push(e.block));
9386
- let fe = {
9390
+ for (let e of ge) e && (I[e.region] || (I[e.region] = [], L[e.region] = { isInherited: !1 }), I[e.region].push(e.block));
9391
+ let _e = {
9387
9392
  header: {
9388
9393
  label: "Header",
9389
9394
  inherit: "parent"
@@ -9392,33 +9397,33 @@ Ii.get("/*", async (e) => {
9392
9397
  label: "Footer",
9393
9398
  inherit: "parent"
9394
9399
  },
9395
- ...(ae ? m.nodeLayouts?.[ae] || m.layouts?.[ae] : null)?.regions || { main: { label: "Content" } }
9400
+ ...(ue ? m.nodeLayouts?.[ue] || m.layouts?.[ue] : null)?.regions || { main: { label: "Content" } }
9396
9401
  };
9397
- for (let [e, r] of Object.entries(fe)) {
9398
- let i = P[e] && P[e].length > 0, a = !!E[e];
9399
- if (P[e] || (P[e] = [], F[e] = { isInherited: !1 }), (r?.inherit === "parent" || r?.inherit === !0 || r?.inherit === "true" || e === "header" || e === "footer") && !i && !a && b) {
9400
- let r = await Vi(t, b, e, m, s, n);
9401
- if (r.blocks.length > 0 && (P[e] = r.blocks, F[e] = {
9402
+ for (let [e, r] of Object.entries(_e)) {
9403
+ let i = I[e] && I[e].length > 0, a = !!ne[e];
9404
+ if (I[e] || (I[e] = [], L[e] = { isInherited: !1 }), (r?.inherit === "parent" || r?.inherit === !0 || r?.inherit === "true" || e === "header" || e === "footer") && !i && !a && D) {
9405
+ let r = await Hi(t, D, e, m, s, n);
9406
+ if (r.blocks.length > 0 && (I[e] = r.blocks, L[e] = {
9402
9407
  isInherited: !0,
9403
9408
  inheritedFromId: r.inheritedFromId,
9404
9409
  inheritedFromTitle: r.inheritedFromTitle
9405
- }, r.subRegions)) for (let [t, n] of Object.entries(r.subRegions)) t !== e && (P[t] = n, F[t] = {
9410
+ }, r.subRegions)) for (let [t, n] of Object.entries(r.subRegions)) t !== e && (I[t] = n, L[t] = {
9406
9411
  isInherited: !0,
9407
9412
  inheritedFromId: r.inheritedFromId,
9408
9413
  inheritedFromTitle: r.inheritedFromTitle
9409
9414
  });
9410
9415
  }
9411
9416
  }
9412
- await Promise.all(Object.keys(P).map((e) => Bi(t, P[e], u)));
9413
- let pe = {
9417
+ await Promise.all(Object.keys(I).map((e) => Vi(t, I[e], u)));
9418
+ let ve = {
9414
9419
  channelId: u || d,
9415
- treeId: y,
9416
- language: S.language,
9417
- node: S,
9418
- content: P,
9419
- regionMeta: F
9420
+ treeId: E,
9421
+ language: O.language,
9422
+ node: O,
9423
+ content: I,
9424
+ regionMeta: L
9420
9425
  };
9421
- return s || (e.header("X-Cache", "MISS"), await $i(f, p, pe, Qi(e))), e.json(pe);
9426
+ return s || (e.header("X-Cache", "MISS"), await ea(f, p, ve, $i(e))), e.json(ve);
9422
9427
  } catch (t) {
9423
9428
  console.error("[CMS Public API] Error fetching node by path:", t);
9424
9429
  let n = e.env?.ENVIRONMENT === "development";
@@ -9430,8 +9435,8 @@ Ii.get("/*", async (e) => {
9430
9435
  });
9431
9436
  //#endregion
9432
9437
  //#region server/routes/public/tree.ts
9433
- var ea = new e();
9434
- function ta(e, t) {
9438
+ var ta = new e();
9439
+ function na(e, t) {
9435
9440
  let n = /* @__PURE__ */ new Date();
9436
9441
  if (e && String(e).trim() !== "") {
9437
9442
  let t = new Date(e);
@@ -9443,14 +9448,14 @@ function ta(e, t) {
9443
9448
  }
9444
9449
  return !0;
9445
9450
  }
9446
- async function na(e, t, n, r) {
9451
+ async function ra(e, t, n, r) {
9447
9452
  try {
9448
9453
  await e.set(t, n, r);
9449
9454
  } catch (e) {
9450
9455
  console.warn("[CMS Cache] Failed to write tree response to cache:", e);
9451
9456
  }
9452
9457
  }
9453
- ea.get("/:treeParam", async (e) => {
9458
+ ta.get("/:treeParam", async (e) => {
9454
9459
  try {
9455
9460
  let t = e.get("db"), n = e.req.param("treeParam"), r = e.req.query("channelId") || e.req.query("channel") || "default", i = e.req.query("preview") === "true";
9456
9461
  if (r && r !== "default" && r !== "all") {
@@ -9466,7 +9471,7 @@ ea.get("/:treeParam", async (e) => {
9466
9471
  if (t) return e.header("X-Cache", "HIT"), e.json(t);
9467
9472
  }
9468
9473
  let s = !isNaN(Number(n)), c = s ? await t.prepare("SELECT * FROM trees WHERE id = ?").get(Number(n)) : await t.prepare("SELECT * FROM trees WHERE key = ?").get(n);
9469
- if (c && c.isHidden && !i) return e.json({ error: `Tree '${n}' is hidden` }, 404);
9474
+ if (c && Number(c.isHidden) === 1 && !i) return e.json({ error: `Tree '${n}' is hidden` }, 404);
9470
9475
  let l = c?.id || (s ? Number(n) : null), u = {};
9471
9476
  if (c && c.dataJson) try {
9472
9477
  let t = typeof c.dataJson == "string" ? JSON.parse(c.dataJson) : c.dataJson, r = e.env?.BUNDLED_DEFINITIONS, i = ui(r), a = (i.trees?.[c.treeType || n] || i.trees?.site || {}).fields || {};
@@ -9504,7 +9509,7 @@ ea.get("/:treeParam", async (e) => {
9504
9509
  return (f.get(n) || []).map((e) => {
9505
9510
  let n = p.get(String(e.treeNodeId)) || {}, r = {};
9506
9511
  for (let [e, t] of Object.entries(n)) e !== "_isTreeDraft" && e !== "_draftParentId" && e !== "isNew" && e !== "hidden" && e !== "is_hidden" && e !== "isHidden" && e !== "status" && (r[e] = t);
9507
- let a = !i && (e.status === "draft" || e.status === "new"), o = !!e.isHidden || a || n.hidden === !0 || n.hidden === 1 || n.hidden === "1" || n.hidden === "true", s = ta(n.startShowingAt, n.stopShowingAt), c = (e.slug || "").replace(/^\/+|\/+$/g, ""), l = c === "home" || c === "homee" ? "/" : `${t}/${c}`.replace(/\/+/g, "/"), u = {
9512
+ let a = !i && (e.status === "draft" || e.status === "new"), o = Number(e.isHidden) === 1 || a || n.hidden === !0 || n.hidden === 1 || n.hidden === "1" || n.hidden === "true", s = na(n.startShowingAt, n.stopShowingAt), c = (e.slug || "").replace(/^\/+|\/+$/g, ""), l = (!e.parentId || e.parentId === "null" || e.parentId === "") && (c === "home" || c === "homee") ? "/" : `${t}/${c}`.replace(/\/+/g, "/"), u = {
9508
9513
  id: e.id,
9509
9514
  treeNodeId: e.treeNodeId,
9510
9515
  parentId: e.parentId || null,
@@ -9529,7 +9534,7 @@ ea.get("/:treeParam", async (e) => {
9529
9534
  ...u,
9530
9535
  items: m(null)
9531
9536
  };
9532
- return i || (e.header("X-Cache", "MISS"), await na(a, o, h, 300)), e.json(h);
9537
+ return i || (e.header("X-Cache", "MISS"), await ra(a, o, h, 300)), e.json(h);
9533
9538
  } catch (t) {
9534
9539
  return console.error("[CMS Public Tree API] Error:", t), e.json({
9535
9540
  error: "Failed to fetch public tree",
@@ -9539,8 +9544,8 @@ ea.get("/:treeParam", async (e) => {
9539
9544
  });
9540
9545
  //#endregion
9541
9546
  //#region server/routes/public/assets.ts
9542
- var ra = new e();
9543
- function ia(e, t) {
9547
+ var ia = new e();
9548
+ function aa(e, t) {
9544
9549
  if (t === "webp") return "image/webp";
9545
9550
  if (t === "avif") return "image/avif";
9546
9551
  if (t === "jpeg" || t === "jpg") return "image/jpeg";
@@ -9548,111 +9553,121 @@ function ia(e, t) {
9548
9553
  let n = e.toLowerCase();
9549
9554
  return n.endsWith(".jpg") || n.endsWith(".jpeg") ? "image/jpeg" : n.endsWith(".png") ? "image/png" : n.endsWith(".webp") ? "image/webp" : n.endsWith(".gif") ? "image/gif" : n.endsWith(".svg") ? "image/svg+xml" : n.endsWith(".pdf") ? "application/pdf" : n.endsWith(".mp4") ? "video/mp4" : n.endsWith(".webm") ? "video/webm" : "application/octet-stream";
9550
9555
  }
9551
- ra.get("/*", async (e) => {
9556
+ ia.get("/*", async (e) => {
9552
9557
  let t = e.req.path.replace(/^\/media\//, "").replace(/^\//, "");
9553
9558
  if (!t) return e.text("Asset key missing", 400);
9554
- let n = typeof caches < "u" && caches?.default ? caches.default : null, r = e.env?.MEDIA_BUCKET || e.env?.IMAGES ? new Request(e.req.url, e.req.raw) : null;
9555
- if (n && r) {
9556
- let e = await n.match(r);
9559
+ let n = e.env?.MEDIA_BUCKET, { w: r, h: i, q: a, f: o } = e.req.query(), s = !!(r || i || a || o), c = e.req.header("Accept") || "", l = "";
9560
+ s && (o === "avif" || !o && c.includes("image/avif") ? l = "avif" : o === "webp" || !o && c.includes("image/webp") ? l = "webp" : o === "jpeg" || o === "jpg" ? l = "jpeg" : o === "png" && (l = "png"));
9561
+ let u = typeof caches < "u" && caches?.default ? caches.default : null, d = e.req.url;
9562
+ if (s && l && !o) {
9563
+ let e = new URL(d);
9564
+ e.searchParams.set("_resolvedFormat", l), d = e.toString();
9565
+ }
9566
+ let f = n || e.env?.IMAGES ? new Request(d, e.req.raw) : null;
9567
+ if (u && f) {
9568
+ let e = await u.match(f);
9557
9569
  if (e) return e;
9558
9570
  }
9559
- let i = e.env?.MEDIA_BUCKET, { w: a, h: o, q: s, f: c } = e.req.query(), l = !!(a || o || s || c), u = e.req.header("Via")?.includes("image-resizing") || e.req.header("User-Agent")?.includes("Cloudflare-ImgRen"), d = new URL(e.req.url), f = e.env?.CDN_DOMAIN || d.hostname;
9560
- if (i) {
9561
- let d = await i.get(t);
9562
- if (!d && t.includes("/")) {
9571
+ let p = e.req.header("Via")?.includes("image-resizing") || e.req.header("User-Agent")?.includes("Cloudflare-ImgRen"), m = new URL(e.req.url), h = e.env?.CDN_DOMAIN || m.hostname;
9572
+ if (n) {
9573
+ let c = await n.get(t);
9574
+ if (!c && t.includes("/")) {
9563
9575
  let e = t.split("/").slice(1).join("/");
9564
- d = await i.get(e);
9565
- }
9566
- if (!d) return e.text(`Asset not found: ${t}`, 404);
9567
- let p = d.httpMetadata?.contentType || ia(t), m = p.startsWith("image/") && !p.includes("svg");
9568
- if (l && m && e.env?.IMAGES) try {
9569
- let t = a ? parseInt(a, 10) : void 0, i = o ? parseInt(o, 10) : void 0, l = s ? parseInt(s, 10) : 80, u = e.req.header("Accept") || "", f = "image/webp";
9570
- c === "avif" || !c && u.includes("image/avif") ? f = "image/avif" : c === "webp" || !c && u.includes("image/webp") ? f = "image/webp" : c === "jpeg" || c === "jpg" ? f = "image/jpeg" : c === "png" && (f = "image/png");
9571
- let p = {
9572
- quality: l,
9573
- fit: "cover"
9574
- };
9575
- t && (p.width = t), i && (p.height = i);
9576
- let m = (await e.env.IMAGES.input(d.body).transform(p).output({ format: f })).response(), h = new Headers(m.headers);
9577
- h.set("Cache-Control", "public, max-age=31536000, immutable"), h.set("Access-Control-Allow-Origin", "*");
9578
- let g = new Response(m.body, {
9579
- status: 200,
9580
- headers: h
9581
- });
9582
- return n && r && e.executionCtx?.waitUntil && e.executionCtx.waitUntil(n.put(r, g.clone())), g;
9583
- } catch (e) {
9584
- if (console.warn("[Cloudflare Images Binding] Transformation failed, falling back:", e), d = await i.get(t), !d && t.includes("/")) {
9585
- let e = t.split("/").slice(1).join("/");
9586
- d = await i.get(e);
9576
+ c = await n.get(e);
9577
+ }
9578
+ if (!c) return e.text(`Asset not found: ${t}`, 404);
9579
+ let d = c.httpMetadata?.contentType || aa(t), m = d.startsWith("image/") && !d.includes("svg"), g = !1;
9580
+ if (s && m && e.env?.IMAGES) {
9581
+ g = !0;
9582
+ try {
9583
+ let t = r ? parseInt(r, 10) : void 0, n = i ? parseInt(i, 10) : void 0, o = {
9584
+ quality: a ? parseInt(a, 10) : 80,
9585
+ fit: "cover"
9586
+ };
9587
+ t && (o.width = t), n && (o.height = n);
9588
+ let s = (await e.env.IMAGES.input(c.body).transform(o).output({ format: `image/${l || "webp"}` })).response(), d = new Headers(s.headers);
9589
+ d.set("Cache-Control", "public, max-age=31536000, immutable"), d.set("Access-Control-Allow-Origin", "*");
9590
+ let p = new Response(s.body, {
9591
+ status: 200,
9592
+ headers: d
9593
+ });
9594
+ return u && f && e.executionCtx?.waitUntil && e.executionCtx.waitUntil(u.put(f, p.clone())), p;
9595
+ } catch (e) {
9596
+ console.warn("[Cloudflare Images Binding] Transformation failed, falling back:", e);
9587
9597
  }
9588
9598
  }
9589
- if (l && f && !u && !e.env?.IMAGES) {
9590
- let i = a ? parseInt(a, 10) : void 0, l = o ? parseInt(o, 10) : void 0, u = s ? parseInt(s, 10) : 85, d = c || "auto", p = `https://${f}/media/${t}`;
9599
+ if (s && h && !p && !e.env?.IMAGES) {
9600
+ g = !0;
9601
+ let n = r ? parseInt(r, 10) : void 0, s = i ? parseInt(i, 10) : void 0, c = a ? parseInt(a, 10) : 85, l = o || "auto", d = `https://${h}/media/${t}`;
9591
9602
  try {
9592
- let t = await fetch(p, {
9603
+ let t = await fetch(d, {
9593
9604
  headers: { Accept: e.req.header("Accept") || "image/webp,image/avif,image/*,*/*;q=0.8" },
9594
9605
  cf: { image: {
9595
- width: i,
9596
- height: l,
9597
- quality: u,
9598
- format: d,
9606
+ width: n,
9607
+ height: s,
9608
+ quality: c,
9609
+ format: l,
9599
9610
  fit: "cover",
9600
9611
  anim: !1
9601
9612
  } }
9602
9613
  });
9603
- if (t.ok) return n && r && e.executionCtx?.waitUntil && e.executionCtx.waitUntil(n.put(r, t.clone())), t;
9614
+ if (t.ok) return u && f && e.executionCtx?.waitUntil && e.executionCtx.waitUntil(u.put(f, t.clone())), t;
9604
9615
  console.warn(`[Cloudflare Image] Resizing returned status ${t.status}. Falling back to raw R2 stream.`);
9605
9616
  } catch (e) {
9606
9617
  console.warn("[Cloudflare Image] Resize fetch failed. Falling back to raw R2 stream.", e);
9607
9618
  }
9608
9619
  }
9609
- if (d) {
9620
+ if (g && (c = await n.get(t), !c && t.includes("/"))) {
9621
+ let e = t.split("/").slice(1).join("/");
9622
+ c = await n.get(e);
9623
+ }
9624
+ if (c) {
9610
9625
  let t = new Headers();
9611
- d.writeHttpMetadata(t), t.set("etag", d.httpEtag), t.set("Cache-Control", "public, max-age=31536000, immutable"), t.set("Access-Control-Allow-Origin", "*");
9612
- let i = e.body(d.body, 200, Object.fromEntries(t.entries()));
9613
- return n && r && e.executionCtx?.waitUntil && e.executionCtx.waitUntil(n.put(r, i.clone())), i;
9626
+ c.writeHttpMetadata(t), t.set("etag", c.httpEtag), t.set("Cache-Control", "public, max-age=31536000, immutable"), t.set("Access-Control-Allow-Origin", "*");
9627
+ let n = e.body(c.body, 200, Object.fromEntries(t.entries()));
9628
+ return u && f && e.executionCtx?.waitUntil && e.executionCtx.waitUntil(u.put(f, n.clone())), n;
9614
9629
  }
9615
9630
  }
9616
- let [{ existsSync: p, readFileSync: m, mkdirSync: h, writeFileSync: g }, { join: _, dirname: v }] = await Promise.all([import(
9631
+ let [{ existsSync: g, readFileSync: _, mkdirSync: v, writeFileSync: y }, { join: b, dirname: x }] = await Promise.all([import(
9617
9632
  /* @vite-ignore */
9618
9633
  "node:fs"
9619
9634
  ), import(
9620
9635
  /* @vite-ignore */
9621
9636
  "node:path"
9622
- )]), y = e.env?.LOCAL_MEDIA_PATH || "./public/media", b = _(process.cwd(), y, t);
9623
- if (p(b)) try {
9624
- if (!l) {
9625
- let n = m(b);
9637
+ )]), S = e.env?.LOCAL_MEDIA_PATH || "./public/media", C = b(process.cwd(), S, t);
9638
+ if (g(C)) try {
9639
+ if (!s) {
9640
+ let n = _(C);
9626
9641
  return e.body(n, 200, {
9627
- "Content-Type": ia(t),
9642
+ "Content-Type": aa(t),
9628
9643
  "Cache-Control": "public, max-age=86400"
9629
9644
  });
9630
9645
  }
9631
- let n = a ? parseInt(a, 10) : "auto", r = o ? parseInt(o, 10) : "auto", i = s ? parseInt(s, 10) : 80, u = c || "webp", d = `w${n}_h${r}_q${i}_f${u}_${t.replace(/[/\\?%*:|"<>]/g, "_")}`, f = _(process.cwd(), y, ".cache", d);
9632
- if (p(f)) {
9633
- let n = m(f);
9646
+ let n = r ? parseInt(r, 10) : "auto", o = i ? parseInt(i, 10) : "auto", c = a ? parseInt(a, 10) : 80, u = l || "webp", d = `w${n}_h${o}_q${c}_f${u}_${t.replace(/[/\\?%*:|"<>]/g, "_")}`, f = b(process.cwd(), S, ".cache", d);
9647
+ if (g(f)) {
9648
+ let n = _(f);
9634
9649
  return e.body(n, 200, {
9635
- "Content-Type": ia(t, u),
9650
+ "Content-Type": aa(t, u),
9636
9651
  "Cache-Control": "public, max-age=31536000, immutable",
9637
9652
  "X-Local-Cache": "HIT"
9638
9653
  });
9639
9654
  }
9640
9655
  try {
9641
- let a = (await import(
9656
+ let r = (await import(
9642
9657
  /* @vite-ignore */
9643
9658
  "sharp"
9644
- )).default, o = a(b), s = {};
9645
- typeof n == "number" && (s.width = n), typeof r == "number" && (s.height = r), (s.width || s.height) && (s.fit = "cover", o = o.resize(s)), u === "webp" ? o = o.webp({ quality: typeof i == "number" ? i : 80 }) : u === "avif" ? o = o.avif({ quality: typeof i == "number" ? i : 70 }) : u === "jpeg" || u === "jpg" ? o = o.jpeg({ quality: typeof i == "number" ? i : 80 }) : u === "png" && (o = o.png({ quality: typeof i == "number" ? i : 80 }));
9646
- let c = await o.toBuffer();
9647
- return h(v(f), { recursive: !0 }), g(f, c), e.body(c, 200, {
9648
- "Content-Type": ia(t, u),
9659
+ )).default, i = r(C), a = {};
9660
+ typeof n == "number" && (a.width = n), typeof o == "number" && (a.height = o), (a.width || a.height) && (a.fit = "cover", i = i.resize(a)), u === "webp" ? i = i.webp({ quality: typeof c == "number" ? c : 80 }) : u === "avif" ? i = i.avif({ quality: typeof c == "number" ? c : 70 }) : u === "jpeg" || u === "jpg" ? i = i.jpeg({ quality: typeof c == "number" ? c : 80 }) : u === "png" && (i = i.png({ quality: typeof c == "number" ? c : 80 }));
9661
+ let s = await i.toBuffer();
9662
+ return v(x(f), { recursive: !0 }), y(f, s), e.body(s, 200, {
9663
+ "Content-Type": aa(t, u),
9649
9664
  "Cache-Control": "public, max-age=31536000, immutable",
9650
9665
  "X-Local-Cache": "MISS"
9651
9666
  });
9652
9667
  } catch {
9653
- let n = m(b);
9668
+ let n = _(C);
9654
9669
  return e.body(n, 200, {
9655
- "Content-Type": ia(t),
9670
+ "Content-Type": aa(t),
9656
9671
  "Cache-Control": "public, max-age=86400"
9657
9672
  });
9658
9673
  }
@@ -9663,8 +9678,8 @@ ra.get("/*", async (e) => {
9663
9678
  });
9664
9679
  //#endregion
9665
9680
  //#region server/routes/public/paths.ts
9666
- var aa = new e();
9667
- function oa(e, t) {
9681
+ var oa = new e();
9682
+ function sa(e, t) {
9668
9683
  let n = /* @__PURE__ */ new Date();
9669
9684
  if (e && String(e).trim() !== "") {
9670
9685
  let t = new Date(e);
@@ -9676,7 +9691,7 @@ function oa(e, t) {
9676
9691
  }
9677
9692
  return !0;
9678
9693
  }
9679
- aa.get("/", async (e) => {
9694
+ oa.get("/", async (e) => {
9680
9695
  try {
9681
9696
  let t = await e.get("db").prepare("\n SELECT\n t.id as treeNodeId,\n t.parentId,\n c.slug,\n c.contentType as nodeType,\n c.status,\n c.dataJson\n FROM tree_nodes t\n INNER JOIN content_nodes c ON t.contentId = c.id\n WHERE (c.deletedAt IS NULL OR c.deletedAt = '')\n ORDER BY t.sortOrder ASC\n ").all(), n = Array.isArray(t) ? t : t?.results || [], r = [], i = /* @__PURE__ */ new Map();
9682
9697
  for (let e of n) {
@@ -9700,7 +9715,7 @@ aa.get("/", async (e) => {
9700
9715
  function o(e = null, t = "") {
9701
9716
  let n = e == null || e === "" || e === "null" ? "__ROOT__" : String(e), s = i.get(n) || [];
9702
9717
  for (let e of s) {
9703
- let n = a.get(String(e.treeNodeId)) || {}, i = e.status === "published" || e.status === "active", s = oa(n.startShowingAt, n.stopShowingAt);
9718
+ let n = a.get(String(e.treeNodeId)) || {}, i = e.status === "published" || e.status === "active", s = sa(n.startShowingAt, n.stopShowingAt);
9704
9719
  if (!i || !s) continue;
9705
9720
  let c = (e.slug || "").replace(/^\/+|\/+$/g, ""), l = c === "home" || c === "homee" ? "/" : `${t}/${c}`.replace(/\/+/g, "/");
9706
9721
  e.nodeType !== "external-link" && r.push(l);
@@ -9717,7 +9732,7 @@ aa.get("/", async (e) => {
9717
9732
  });
9718
9733
  //#endregion
9719
9734
  //#region server/index.ts
9720
- var $ = new e(), sa = !1;
9735
+ var $ = new e(), ca = !1;
9721
9736
  $.use("*", o()), $.use("/media/*", o({
9722
9737
  origin: "*",
9723
9738
  allowMethods: [
@@ -9738,13 +9753,13 @@ $.use("*", o()), $.use("/media/*", o({
9738
9753
  let n = new URL(e.req.url), r = (e.req.header("host") || n.hostname).split(":")[0];
9739
9754
  e.set("currentDomain", r);
9740
9755
  let i = u(e);
9741
- if (e.set("db", i), !sa) try {
9742
- await Pr(i), sa = !0;
9756
+ if (e.set("db", i), !ca) try {
9757
+ await Pr(i), ca = !0;
9743
9758
  } catch (e) {
9744
9759
  console.error("❌ [CMS Server] Failed to initialize system tables on cold start:", e);
9745
9760
  }
9746
9761
  await t();
9747
- }), $.route("/media", ra), $.use("/media/*", Lr()), $.route("/api/cms/nodes", X), $.route("/api/cms/nodes.json", X), $.route("/api/cms/formcsv", X), $.route("/api/cms/formcsv.json", X), $.route("/api/cms/stats", Mi), $.route("/api/cms/stats.json", Mi), $.route("/api/cms", xi), $.route("/api/cms/channels", Ti), $.route("/api/cms/channels.json", Ti), $.route("/api/cms/schemas", Ei), $.route("/api/cms/schemas.json", Ei), $.route("/api/cms", ki), $.route("/api/admin/assets", Z), $.route("/api/v1/node", Ii), $.route("/api/v1/page", Ii), $.route("/api/v1/tree", ea), $.route("/api/v1/all-paths", aa), $.get("*", async (e) => {
9762
+ }), $.route("/media", ia), $.use("/media/*", Lr()), $.route("/api/cms/nodes", X), $.route("/api/cms/nodes.json", X), $.route("/api/cms/formcsv", X), $.route("/api/cms/formcsv.json", X), $.route("/api/cms/stats", Ni), $.route("/api/cms/stats.json", Ni), $.route("/api/cms", Si), $.route("/api/cms/channels", Ei), $.route("/api/cms/channels.json", Ei), $.route("/api/cms/schemas", Di), $.route("/api/cms/schemas.json", Di), $.route("/api/cms", Ai), $.route("/api/admin/assets", Z), $.route("/api/v1/node", Li), $.route("/api/v1/page", Li), $.route("/api/v1/tree", ta), $.route("/api/v1/all-paths", oa), $.get("*", async (e) => {
9748
9763
  if (e.env?.ASSETS) {
9749
9764
  let t = await e.env.ASSETS.fetch(e.req.raw);
9750
9765
  if (t.status === 404) {