@brightsideoy/kama 0.1.0-alpha.96 → 0.1.0-alpha.97

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.html CHANGED
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>KAMA</title>
7
- <script type="module" crossorigin src="/assets/index-rokn0uCx.js"></script>
8
- <link rel="stylesheet" crossorigin href="/assets/index-BvB_DAlg.css">
7
+ <script type="module" crossorigin src="/assets/index-DMGVyugC.js"></script>
8
+ <link rel="stylesheet" crossorigin href="/assets/index-PmajiIUa.css">
9
9
  </head>
10
10
  <body>
11
11
  <div id="app"></div>
package/dist/index.js CHANGED
@@ -4495,14 +4495,16 @@ var Dr = /* @__PURE__ */ a({
4495
4495
  { fieldSet: "page-base" },
4496
4496
  { title: {
4497
4497
  label: "Event Title",
4498
- required: !0
4498
+ required: !0,
4499
+ showAsEditorTitle: !0
4499
4500
  } },
4500
4501
  { slug: { linkedTo: "title" } },
4501
4502
  { startTime: {
4502
4503
  type: "datetime",
4503
4504
  label: "Starts",
4504
4505
  public: !0,
4505
- index: !0
4506
+ index: !0,
4507
+ showAsEditorTitle: !0
4506
4508
  } },
4507
4509
  { endTime: {
4508
4510
  type: "datetime",
@@ -4649,8 +4651,14 @@ var Dr = /* @__PURE__ */ a({
4649
4651
  label: "Title",
4650
4652
  required: !1
4651
4653
  } },
4652
- { firstName: { label: "First Name" } },
4653
- { lastName: { label: "Last Name" } },
4654
+ { firstName: {
4655
+ label: "First Name",
4656
+ showAsEditorTitle: !0
4657
+ } },
4658
+ { lastName: {
4659
+ label: "Last Name",
4660
+ showAsEditorTitle: !0
4661
+ } },
4654
4662
  { position: null },
4655
4663
  { fieldSet: "access" }
4656
4664
  ]
@@ -7411,6 +7419,10 @@ var X = class {
7411
7419
  frontendWorker: e.env?.FRONTEND_WORKER || this.env.FRONTEND_WORKER
7412
7420
  };
7413
7421
  }
7422
+ isLocalEnv(e) {
7423
+ let { frontendUrl: t } = this.getEnv(e), n = typeof process < "u" && process.env.NODE_ENV === "development", r = t.includes("localhost") || t.includes("127.0.0.1");
7424
+ return n || r;
7425
+ }
7414
7426
  dispatch(e, t) {
7415
7427
  if (!t || typeof t != "object" || typeof t.catch != "function") return;
7416
7428
  let n = t.catch((e) => {
@@ -7428,7 +7440,12 @@ var X = class {
7428
7440
  return r && n && r.startsWith(`https://${n}/`) && !r.includes("/media/") && (r = r.replace(`https://${n}/`, `https://${n}/media/`)), r;
7429
7441
  }
7430
7442
  async callAstroPurge(e, t) {
7431
- let { apiToken: n, frontendUrl: r, frontendWorker: i } = this.getEnv(e), a = `${r}/api/purge`, o = { "Content-Type": "application/json" };
7443
+ let { apiToken: n, frontendUrl: r, frontendWorker: i } = this.getEnv(e);
7444
+ if (this.isLocalEnv(e)) return new Response(JSON.stringify({
7445
+ success: !0,
7446
+ local: !0
7447
+ }), { status: 200 });
7448
+ let a = `${r}/api/purge`, o = { "Content-Type": "application/json" };
7432
7449
  return n && (o.Authorization = `Bearer ${n}`), i && typeof i.fetch == "function" ? i.fetch(a, {
7433
7450
  method: "POST",
7434
7451
  headers: o,
@@ -7469,7 +7486,7 @@ var X = class {
7469
7486
  let i = t.prepare("SELECT slug, status, language FROM content_nodes WHERE id = ?"), a = (typeof i.get == "function" ? await i.get(n) : (await i.bind(n).all())?.results?.[0]) || {};
7470
7487
  if (!a.slug) return;
7471
7488
  let o = t.prepare("\n SELECT DISTINCT a.cdnUrl, a.storageKeyPrivate\n FROM node_assets na\n JOIN assets a ON na.assetId = a.id\n WHERE na.nodeId = ?\n "), s = typeof o.all == "function" ? await o.all(n) : await o.bind(n).all(), c = (Array.isArray(s) ? s : s?.results || []).map((t) => t.url || this.getSafeUrl(t.cdnUrl, t.storageKeyPrivate, this.getEnv(e).cdnDomain)).filter(Boolean);
7472
- await this.purgeInternalWorkerCache(e, t, n, a.slug, a.language || "en"), await this.purgeAndWarmSlugDirect(e, a.slug, c), r && (console.log("[CacheManager] Structural change detected. Triggering Global Version Bump..."), await this.purgeGlobalCacheDirect(e, t));
7489
+ await this.purgeInternalWorkerCache(e, t, n, a.slug, a.language || "en"), await this.purgeAndWarmSlugDirect(e, a.slug, c), r && await this.purgeGlobalCacheDirect(e, t);
7473
7490
  } catch (e) {
7474
7491
  console.warn("[CacheManager] purgeNode failed:", e);
7475
7492
  }
@@ -7493,10 +7510,14 @@ var X = class {
7493
7510
  async purgeGlobalCacheDirect(e, t) {
7494
7511
  try {
7495
7512
  let { zoneId: n, apiToken: r, frontendUrl: i } = this.getEnv(e);
7513
+ if (this.isLocalEnv(e)) {
7514
+ console.log("[CacheManager] Local environment detected; skipping Cloudflare edge purge.");
7515
+ return;
7516
+ }
7496
7517
  console.log("[CacheManager] Executing Direct Global Version Purge...");
7497
7518
  let a = await this.callAstroPurge(e, { purge_everything: !0 });
7498
7519
  if (!a.ok) {
7499
- console.error(`❌ [CacheManager] Astro Global Purge FAILED (${a.status})`);
7520
+ console.warn(`[CacheManager] Astro Global Purge skipped or unauthenticated (${a.status})`);
7500
7521
  return;
7501
7522
  }
7502
7523
  n && r && fetch(`https://api.cloudflare.com/client/v4/zones/${n}/purge_cache`, {
@@ -7508,12 +7529,14 @@ var X = class {
7508
7529
  body: JSON.stringify({ purge_everything: !0 })
7509
7530
  }).catch(() => {}), await new Promise((e) => setTimeout(e, 100)), t ? await this.warmAllPublishedPages(e, t) : fetch(`${i.replace(/\/+$/, "")}/?_warmer=${Date.now()}`, { headers: { "X-Cache-Warmer": "true" } }).catch(() => {});
7510
7531
  } catch (e) {
7511
- console.error("❌ [CacheManager] Direct Global Purge CRASH:", e);
7532
+ console.warn("[CacheManager] Direct Global Purge skipped:", e);
7512
7533
  }
7513
7534
  }
7514
7535
  async purgeAndWarmSlugDirect(e, t, n = []) {
7515
7536
  try {
7516
- let { zoneId: r, apiToken: i, frontendUrl: a } = this.getEnv(e), o = t.replace(/^\/+|\/+$/g, ""), s = o === "home" || !o ? a : `${a}/${o}`, c = [
7537
+ let { zoneId: r, apiToken: i, frontendUrl: a } = this.getEnv(e);
7538
+ if (this.isLocalEnv(e)) return;
7539
+ let o = t.replace(/^\/+|\/+$/g, ""), s = o === "home" || !o ? a : `${a}/${o}`, c = [
7517
7540
  s,
7518
7541
  `${s}/`,
7519
7542
  `https://admin.t3cloud.eu/api/v1/node/${o}?channelId=1&lang=en`,
@@ -7531,12 +7554,14 @@ var X = class {
7531
7554
  body: JSON.stringify({ files: c })
7532
7555
  }).catch(() => {}), await new Promise((e) => setTimeout(e, 100)), fetch(`${s}?_warmer=${Date.now()}`, { headers: { "X-Cache-Warmer": "true" } }).catch(() => {});
7533
7556
  } catch (e) {
7534
- console.error("❌ [CacheManager] Dual Slug Purge CRASH:", e);
7557
+ console.warn("[CacheManager] Dual Slug Purge skipped:", e);
7535
7558
  }
7536
7559
  }
7537
7560
  async warmAllPublishedPages(e, t) {
7538
7561
  try {
7539
- let { frontendUrl: n } = this.getEnv(e), r = t.prepare("SELECT DISTINCT slug FROM content_nodes WHERE status = 'published' AND slug IS NOT NULL AND (deletedAt IS NULL OR deletedAt = '')"), i = typeof r.all == "function" ? await r.all() : await r.bind().all(), a = Array.isArray(i) ? i : i?.results || [], o = { "X-Cache-Warmer": "true" }, s = Date.now(), c = a.map((e) => {
7562
+ let { frontendUrl: n } = this.getEnv(e);
7563
+ if (this.isLocalEnv(e)) return;
7564
+ let r = t.prepare("SELECT DISTINCT slug FROM content_nodes WHERE status = 'published' AND slug IS NOT NULL AND (deletedAt IS NULL OR deletedAt = '')"), i = typeof r.all == "function" ? await r.all() : await r.bind().all(), a = Array.isArray(i) ? i : i?.results || [], o = { "X-Cache-Warmer": "true" }, s = Date.now(), c = a.map((e) => {
7540
7565
  let t = String(e.slug).replace(/^\/+|\/+$/g, ""), r = t === "home" || !t ? n : `${n}/${t}`;
7541
7566
  return fetch(`${r}?_warmer=${s}`, { headers: o }).catch(() => {});
7542
7567
  });
@@ -7860,19 +7885,10 @@ Z.get("/", async (e) => {
7860
7885
  await t.prepare(`INSERT OR IGNORE INTO node_channels (nodeId, channelId) VALUES ${n}`).run(...r);
7861
7886
  }
7862
7887
  }
7863
- if (g !== void 0 && Array.isArray(g) && g.length > 0 && w) {
7864
- let e = await t.prepare("SELECT treeId, parentId, sortOrder FROM tree_nodes WHERE contentId = ?").all(w), n = Array.isArray(e) ? e : e?.results || [], r = /* @__PURE__ */ new Set(), i = [], a = [];
7865
- for (let e of g) if (e && e.treeId) {
7866
- let t = Number(e.treeId) || e.treeId;
7867
- if (!r.has(t)) {
7868
- r.add(t);
7869
- let o = n.find((e) => Number(e.treeId) === Number(t)), s = mi(e.parentId ?? e._draftParentId ?? null);
7870
- s === null && o && o.parentId !== null && (s = o.parentId);
7871
- let c = typeof e.sortOrder == "number" ? e.sortOrder : o && typeof o.sortOrder == "number" ? o.sortOrder : 0;
7872
- i.push("(?, ?, ?, ?)"), a.push(t, w, s, c);
7873
- }
7874
- }
7875
- i.length > 0 && (await t.prepare("DELETE FROM tree_nodes WHERE contentId = ?").run(w), await t.prepare(`INSERT INTO tree_nodes (treeId, contentId, parentId, sortOrder) VALUES ${i.join(", ")}`).run(...a));
7888
+ if (g !== void 0 && Array.isArray(g) && g.length > 0 && w) for (let e of g) {
7889
+ if (!e || !e.treeId) continue;
7890
+ let n = Number(e.treeId) || e.treeId, r = mi(e.parentId ?? e._draftParentId ?? null), i = typeof e.sortOrder == "number" ? e.sortOrder : 0, a = await t.prepare("SELECT id FROM tree_nodes WHERE treeId = ? AND contentId = ?").get(n, w);
7891
+ a ? await t.prepare("UPDATE tree_nodes SET parentId = ?, sortOrder = ? WHERE id = ?").run(r, i, a.id) : await t.prepare("INSERT INTO tree_nodes (treeId, contentId, parentId, sortOrder) VALUES (?, ?, ?, ?)").run(n, w, r, i);
7876
7892
  }
7877
7893
  let D = [];
7878
7894
  if (m !== void 0 && Array.isArray(m) && w) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brightsideoy/kama",
3
- "version": "0.1.0-alpha.96",
3
+ "version": "0.1.0-alpha.97",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",