@brightsideoy/kama 0.1.0-alpha.46 → 0.1.0-alpha.50

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-Bk-A6B6d.js"></script>
8
- <link rel="stylesheet" crossorigin href="/assets/index-nbx_ufxX.css">
7
+ <script type="module" crossorigin src="/assets/index-BsVawKU0.js"></script>
8
+ <link rel="stylesheet" crossorigin href="/assets/index-BpDJdGFw.css">
9
9
  </head>
10
10
  <body>
11
11
  <div id="app"></div>
package/dist/index.js CHANGED
@@ -4433,6 +4433,7 @@ var Or = /* @__PURE__ */ a({
4433
4433
  label: "Article",
4434
4434
  inTree: !1,
4435
4435
  hasCanvas: !0,
4436
+ directLinking: !0,
4436
4437
  regions: { content: { label: "Content" } },
4437
4438
  allowedElements: [
4438
4439
  "header",
@@ -4475,6 +4476,7 @@ var Or = /* @__PURE__ */ a({
4475
4476
  label: "Event",
4476
4477
  inTree: !1,
4477
4478
  hasCanvas: !0,
4479
+ directLinking: !0,
4478
4480
  regions: { main: { label: "Content" } },
4479
4481
  allowedElements: ["title-set", "text-block"],
4480
4482
  tabs: { settings: {
@@ -4548,6 +4550,7 @@ var Or = /* @__PURE__ */ a({
4548
4550
  inTree: !0,
4549
4551
  inVault: !0,
4550
4552
  hasCanvas: !0,
4553
+ directLinking: !0,
4551
4554
  defaultLayout: "single-column",
4552
4555
  allowedBlocks: [
4553
4556
  "header",
@@ -4648,6 +4651,7 @@ var Or = /* @__PURE__ */ a({
4648
4651
  inTree: !1,
4649
4652
  inVault: !0,
4650
4653
  hasCanvas: !1,
4654
+ directLinking: !0,
4651
4655
  layout: {
4652
4656
  columns: "3fr 1fr",
4653
4657
  areas: [["main", "sidebar"]]
@@ -8694,7 +8698,46 @@ function Ri(e, t = {}) {
8694
8698
  }
8695
8699
  return n;
8696
8700
  }
8697
- function zi(e) {
8701
+ async function zi(e, t) {
8702
+ if (typeof t == "string") {
8703
+ if (!t.includes("#node:") && !t.includes("data-node-id") && !t.includes("#asset:") && !t.includes("data-asset-id")) return t;
8704
+ let n = /* @__PURE__ */ new Set();
8705
+ for (let e of t.matchAll(/(?:#node:|data-node-id=["'])([^"'\s>]+)/gi)) n.add(e[1]);
8706
+ let r = /* @__PURE__ */ new Set();
8707
+ for (let e of t.matchAll(/(?:#asset:|data-asset-id=["'])([^"'\s>]+)/gi)) r.add(e[1]);
8708
+ if (n.size === 0 && r.size === 0) return t;
8709
+ let i = Array.from(n).map(() => "?").join(","), a = n.size > 0 ? await e.prepare(`SELECT id, slug FROM content_nodes WHERE id IN (${i})`).all(...n) : [], o = /* @__PURE__ */ new Map();
8710
+ for (let e of a || []) o.set(String(e.id), String(e.slug || "").replace(/^\/+|\/+$/g, ""));
8711
+ let s = Array.from(r).map(() => "?").join(","), c = r.size > 0 ? await e.prepare("SELECT id, cdnUrl, storageKeyPrivate FROM assets WHERE id IN (" + s + ")").all(...r) : [], l = /* @__PURE__ */ new Map();
8712
+ for (let e of c || []) l.set(String(e.id), e.cdnUrl || (e.storageKeyPrivate ? `/media/${e.storageKeyPrivate}` : ""));
8713
+ let u = /* @__PURE__ */ new Map(), d = /<a\b([^>]*?)>/gi;
8714
+ for (let n of t.matchAll(d)) {
8715
+ let t = n[1], r = t.match(/data-node-id=["']([^"']+)["']/i), i = t.match(/data-tree-id=["']([^"']+)["']/i);
8716
+ if (!r || !i) continue;
8717
+ let a = await e.prepare("SELECT id as treeNodeId FROM tree_nodes WHERE contentId = ? AND treeId = ? LIMIT 1").get(r[1], i[1]);
8718
+ a?.treeNodeId && u.set(`${r[1]}:${i[1]}`, await Vi(e, String(a.treeNodeId), i[1]));
8719
+ }
8720
+ return t.replace(d, (e, t) => {
8721
+ let n = t.match(/data-node-id=["']([^"']+)["']/i), r = t.match(/data-asset-id=["']([^"']+)["']/i), i = t.match(/href=["']([^"']+)["']/i);
8722
+ if (i?.[1].startsWith("mailto:")) return `<a${t.replace(/\s+target=["'][^"']*["']/i, "")}>`;
8723
+ let a = i?.[1].match(/^#node:(.+)$/i), s = i?.[1].match(/^#asset:(.+)$/i), c = r?.[1] || s?.[1], d = n?.[1] || a?.[1];
8724
+ if (!d && !c) return e;
8725
+ if (c && !d) {
8726
+ let n = l.get(c);
8727
+ return n && i ? `<a${t.replace(/href=["'][^"']*["']/i, `href="${n}"`).replace(/data-asset-id=["'][^"']*["']/i, `data-asset-id="${c}"`)}>` : e;
8728
+ }
8729
+ let f = t.match(/data-tree-id=["']([^"']+)["']/i), p = d, m = f ? u.get(`${p}:${f[1]}`) : void 0, h = o.get(p), g = m || (h === void 0 ? "#" : `/${h}`);
8730
+ return i ? `<a${t.replace(/href=["'][^"']*["']/i, `href="${g || "/"}"`)}>` : e;
8731
+ });
8732
+ }
8733
+ if (Array.isArray(t)) return Promise.all(t.map((t) => zi(e, t)));
8734
+ if (t && typeof t == "object") {
8735
+ let n = await Promise.all(Object.entries(t).map(async ([t, n]) => [t, await zi(e, n)]));
8736
+ return Object.fromEntries(n);
8737
+ }
8738
+ return t;
8739
+ }
8740
+ function Bi(e) {
8698
8741
  let t = e.socialImage;
8699
8742
  if (!t || typeof t != "object") return null;
8700
8743
  let n = (e, t) => {
@@ -8725,7 +8768,7 @@ function zi(e) {
8725
8768
  ])
8726
8769
  };
8727
8770
  }
8728
- async function Bi(e, t, n) {
8771
+ async function Vi(e, t, n) {
8729
8772
  if (!t) return "";
8730
8773
  let r = await e.prepare("\n WITH RECURSIVE ancestor_path(id, parentId, slug, level) AS (\n SELECT t.id, t.parentId, c.slug, 0\n FROM tree_nodes t\n INNER JOIN content_nodes c ON t.contentId = c.id\n WHERE t.id = ? AND t.treeId = ?\n UNION ALL\n SELECT t.id, t.parentId, c.slug, 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 WHERE t.treeId = ?\n )\n SELECT slug FROM ancestor_path ORDER BY level DESC\n ").all(t, n, n), i = Array.isArray(r) ? r : r?.results || [], a = [];
8731
8774
  for (let e of i) {
@@ -8734,7 +8777,7 @@ async function Bi(e, t, n) {
8734
8777
  }
8735
8778
  return "/" + a.join("/");
8736
8779
  }
8737
- async function Vi(e, t, n, r, i) {
8780
+ async function Hi(e, t, n, r, i) {
8738
8781
  let a = {}, o = null;
8739
8782
  if (t) {
8740
8783
  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 UNION ALL\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([
@@ -8794,7 +8837,7 @@ Ni.get("/*", async (e) => {
8794
8837
  WHERE cn.slug = ? ${l === null ? "" : "AND nc.channelId = ?"}
8795
8838
  `, o = l === null ? [n] : [n, l], s = await t.prepare(a).all(...o), c = Array.isArray(s) ? s : s?.results || [];
8796
8839
  if (c.length > 0) for (let e of c) {
8797
- let n = (await Bi(t, e.treeNodeId, e.treeId)).replace(/^\/+|\/+$/g, ""), r = i.replace(/^\/+|\/+$/g, "");
8840
+ let n = (await Vi(t, e.treeNodeId, e.treeId)).replace(/^\/+|\/+$/g, ""), r = i.replace(/^\/+|\/+$/g, "");
8798
8841
  if (n === r || r === "home" && (n === "" || n === "home")) {
8799
8842
  h = e, g = e;
8800
8843
  break;
@@ -8812,7 +8855,7 @@ Ni.get("/*", async (e) => {
8812
8855
  LIMIT 1
8813
8856
  `).get(...e);
8814
8857
  }
8815
- let v = g?.treeId || _ || "main-nav", y = g?.parentId || null, b = g?.treeNodeId ? await Bi(t, g.treeNodeId, v) : `/${(h.slug || "").replace(/^\/+|\/+$/g, "")}`, x = {
8858
+ let v = g?.treeId || _ || "main-nav", y = g?.parentId || null, b = g?.treeNodeId ? await Vi(t, g.treeNodeId, v) : `/${(h.slug || "").replace(/^\/+|\/+$/g, "")}`, x = {
8816
8859
  id: h.id,
8817
8860
  title: h.title,
8818
8861
  slug: h.slug,
@@ -8830,11 +8873,11 @@ Ni.get("/*", async (e) => {
8830
8873
  k = typeof A == "string" ? JSON.parse(A) : A;
8831
8874
  } catch {}
8832
8875
  k.disabledRegions && (T = k.disabledRegions), O = k.hidden === !0 || k.hidden === 1 || k.hidden === "1" || k.hidden === "true", E = k.startShowingAt || null, D = k.stopShowingAt || null;
8833
- let j = k.layoutId, ee = j && j !== "inherit", { resolvedLayoutId: te, inheritedFields: ne } = await Vi(t, y, v, o, w), re = ee ? j : te || C.defaultLayout || null;
8876
+ let j = k.layoutId, ee = j && j !== "inherit", { resolvedLayoutId: te, inheritedFields: ne } = await Hi(t, y, v, o, w), re = ee ? j : te || C.defaultLayout || null;
8834
8877
  for (let [e, t] of Object.entries(ne)) (k[e] === void 0 || k[e] === null || k[e] === "" || k[e] === "inherit") && t !== void 0 && (k[e] = t);
8835
8878
  let M = await oi(t, Ri(k, w));
8836
- M = await Fi(t, M);
8837
- let ie = zi(M);
8879
+ M = await Fi(t, M), M = await zi(t, M);
8880
+ let ie = Bi(M);
8838
8881
  delete M.socialImage, delete M.fbImage, delete M.xImage, delete M.whatsappImage, ie && (M.socialImages = ie), x.slug = h.slug, x.title = h.title, Object.assign(x, M), x.layoutId = re;
8839
8882
  let ae = !!h.isHidden || O, oe = !Pi(E, D);
8840
8883
  if (!o && (ae || oe)) return e.json({ error: "Node is hidden or outside its scheduled publishing window" }, 404);
@@ -8872,7 +8915,7 @@ Ni.get("/*", async (e) => {
8872
8915
  let i = r.hidden === !0 || r.hidden === 1 || r.hidden === "1" || r.hidden === "true", a = Pi(r.startShowingAt, r.stopShowingAt);
8873
8916
  if (!o && (i || !a)) continue;
8874
8917
  let s = e.elementType || e.componentId || "text-block", c = p.blocks?.[s]?.fields || p.elements?.[s]?.fields || p.components?.[s]?.fields || {}, l = String(r.blockId || r._instanceId || r.id || e.blockId || e.id), u = Ri(r, c);
8875
- u = await oi(t, u), u.blockId = l, P[n].push({
8918
+ u = await oi(t, u), u = await zi(t, u), u.blockId = l, P[n].push({
8876
8919
  instanceId: e.id,
8877
8920
  blockId: l,
8878
8921
  componentId: s,
@@ -8924,8 +8967,8 @@ Ni.get("/*", async (e) => {
8924
8967
  });
8925
8968
  //#endregion
8926
8969
  //#region server/routes/public/tree.ts
8927
- var Hi = new e();
8928
- function Ui(e, t) {
8970
+ var Ui = new e();
8971
+ function Wi(e, t) {
8929
8972
  let n = /* @__PURE__ */ new Date();
8930
8973
  if (e && String(e).trim() !== "") {
8931
8974
  let t = new Date(e);
@@ -8937,7 +8980,7 @@ function Ui(e, t) {
8937
8980
  }
8938
8981
  return !0;
8939
8982
  }
8940
- Hi.get("/:treeParam", async (e) => {
8983
+ Ui.get("/:treeParam", async (e) => {
8941
8984
  try {
8942
8985
  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";
8943
8986
  if (r && r !== "default" && r !== "all") {
@@ -8976,7 +9019,7 @@ Hi.get("/:treeParam", async (e) => {
8976
9019
  if (r) try {
8977
9020
  n = typeof r == "string" ? JSON.parse(r) : r, delete n._isTreeDraft, delete n._draftParentId, delete n.isNew, delete n.hidden, delete n.is_hidden, delete n.isHidden, delete n.status;
8978
9021
  } catch {}
8979
- 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 = Ui(n.startShowingAt, n.stopShowingAt), c = (e.slug || "").replace(/^\/+|\/+$/g, ""), l = c === "home" || c === "homee" ? "/" : `${t}/${c}`.replace(/\/+/g, "/"), u = {
9022
+ 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 = Wi(n.startShowingAt, n.stopShowingAt), c = (e.slug || "").replace(/^\/+|\/+$/g, ""), l = c === "home" || c === "homee" ? "/" : `${t}/${c}`.replace(/\/+/g, "/"), u = {
8980
9023
  id: e.id,
8981
9024
  treeNodeId: e.treeNodeId,
8982
9025
  parentId: e.parentId || null,
@@ -9011,8 +9054,8 @@ Hi.get("/:treeParam", async (e) => {
9011
9054
  });
9012
9055
  //#endregion
9013
9056
  //#region server/routes/public/assets.ts
9014
- var Wi = new e();
9015
- function Gi(e, t) {
9057
+ var Gi = new e();
9058
+ function Ki(e, t) {
9016
9059
  if (t === "webp") return "image/webp";
9017
9060
  if (t === "avif") return "image/avif";
9018
9061
  if (t === "jpeg" || t === "jpg") return "image/jpeg";
@@ -9020,7 +9063,7 @@ function Gi(e, t) {
9020
9063
  let n = e.toLowerCase();
9021
9064
  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";
9022
9065
  }
9023
- Wi.get("/*", async (e) => {
9066
+ Gi.get("/*", async (e) => {
9024
9067
  let t = e.req.path.replace(/^\/media\//, "").replace(/^\//, "");
9025
9068
  if (!t) return e.text("Asset key missing", 400);
9026
9069
  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("Via")?.includes("image-resizing") || e.req.header("User-Agent")?.includes("Cloudflare-ImgRen");
@@ -9066,7 +9109,7 @@ Wi.get("/*", async (e) => {
9066
9109
  if (!s) {
9067
9110
  let n = u(g);
9068
9111
  return e.body(n, 200, {
9069
- "Content-Type": Gi(t),
9112
+ "Content-Type": Ki(t),
9070
9113
  "Cache-Control": "public, max-age=86400"
9071
9114
  });
9072
9115
  }
@@ -9074,7 +9117,7 @@ Wi.get("/*", async (e) => {
9074
9117
  if (l(b)) {
9075
9118
  let n = u(b);
9076
9119
  return e.body(n, 200, {
9077
- "Content-Type": Gi(t, v),
9120
+ "Content-Type": Ki(t, v),
9078
9121
  "Cache-Control": "public, max-age=31536000, immutable",
9079
9122
  "X-Local-Cache": "HIT"
9080
9123
  });
@@ -9087,14 +9130,14 @@ Wi.get("/*", async (e) => {
9087
9130
  typeof n == "number" && (a.width = n), typeof c == "number" && (a.height = c), (a.width || a.height) && (a.fit = "cover", i = i.resize(a)), v === "webp" ? i = i.webp({ quality: typeof _ == "number" ? _ : 80 }) : v === "avif" ? i = i.avif({ quality: typeof _ == "number" ? _ : 70 }) : v === "jpeg" || v === "jpg" ? i = i.jpeg({ quality: typeof _ == "number" ? _ : 80 }) : v === "png" && (i = i.png({ quality: typeof _ == "number" ? _ : 80 }));
9088
9131
  let o = await i.toBuffer();
9089
9132
  return d(m(b), { recursive: !0 }), f(b, o), e.body(o, 200, {
9090
- "Content-Type": Gi(t, v),
9133
+ "Content-Type": Ki(t, v),
9091
9134
  "Cache-Control": "public, max-age=31536000, immutable",
9092
9135
  "X-Local-Cache": "MISS"
9093
9136
  });
9094
9137
  } catch {
9095
9138
  let n = u(g);
9096
9139
  return e.body(n, 200, {
9097
- "Content-Type": Gi(t),
9140
+ "Content-Type": Ki(t),
9098
9141
  "Cache-Control": "public, max-age=86400"
9099
9142
  });
9100
9143
  }
@@ -9105,8 +9148,8 @@ Wi.get("/*", async (e) => {
9105
9148
  });
9106
9149
  //#endregion
9107
9150
  //#region server/routes/public/paths.ts
9108
- var Ki = new e();
9109
- function qi(e, t) {
9151
+ var qi = new e();
9152
+ function Ji(e, t) {
9110
9153
  let n = /* @__PURE__ */ new Date();
9111
9154
  if (e && String(e).trim() !== "") {
9112
9155
  let t = new Date(e);
@@ -9118,7 +9161,7 @@ function qi(e, t) {
9118
9161
  }
9119
9162
  return !0;
9120
9163
  }
9121
- Ki.get("/", async (e) => {
9164
+ qi.get("/", async (e) => {
9122
9165
  try {
9123
9166
  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 ").all(), n = Array.isArray(t) ? t : t?.results || [], r = [];
9124
9167
  function i(e = null, t = "") {
@@ -9131,7 +9174,7 @@ Ki.get("/", async (e) => {
9131
9174
  if (e.dataJson) try {
9132
9175
  n = typeof e.dataJson == "string" ? JSON.parse(e.dataJson) : e.dataJson;
9133
9176
  } catch {}
9134
- let a = e.status === "published" || e.status === "active", o = qi(n.startShowingAt, n.stopShowingAt);
9177
+ let a = e.status === "published" || e.status === "active", o = Ji(n.startShowingAt, n.stopShowingAt);
9135
9178
  if (!a || !o) continue;
9136
9179
  let s = (e.slug || "").replace(/^\/+|\/+$/g, ""), c = s === "home" || s === "homee" ? "/" : `${t}/${s}`.replace(/\/+/g, "/");
9137
9180
  e.nodeType !== "external-link" && r.push(c);
@@ -9148,7 +9191,7 @@ Ki.get("/", async (e) => {
9148
9191
  });
9149
9192
  //#endregion
9150
9193
  //#region server/index.ts
9151
- var $ = new e(), Ji = !1;
9194
+ var $ = new e(), Yi = !1;
9152
9195
  $.use("*", o()), $.use("/media/*", o({
9153
9196
  origin: "*",
9154
9197
  allowMethods: [
@@ -9169,13 +9212,13 @@ $.use("*", o()), $.use("/media/*", o({
9169
9212
  let n = new URL(e.req.url), r = (e.req.header("host") || n.hostname).split(":")[0];
9170
9213
  e.set("currentDomain", r);
9171
9214
  let i = u(e);
9172
- if (e.set("db", i), !Ji) try {
9173
- await Nr(i), Ji = !0;
9215
+ if (e.set("db", i), !Yi) try {
9216
+ await Nr(i), Yi = !0;
9174
9217
  } catch (e) {
9175
9218
  console.error("❌ [CMS Server] Failed to initialize system tables on cold start:", e);
9176
9219
  }
9177
9220
  await t();
9178
- }), $.route("/media", Wi), $.use("/media/*", Ir()), $.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", Ai), $.route("/api/cms/stats.json", Ai), $.route("/api/cms", yi), $.route("/api/cms/channels", Ci), $.route("/api/cms/channels.json", Ci), $.route("/api/cms/schemas", wi), $.route("/api/cms/schemas.json", wi), $.route("/api/cms", Di), $.route("/api/admin/assets", Z), $.route("/api/v1/node", Ni), $.route("/api/v1/page", Ni), $.route("/api/v1/tree", Hi), $.route("/api/v1/all-paths", Ki), $.get("*", async (e) => {
9221
+ }), $.route("/media", Gi), $.use("/media/*", Ir()), $.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", Ai), $.route("/api/cms/stats.json", Ai), $.route("/api/cms", yi), $.route("/api/cms/channels", Ci), $.route("/api/cms/channels.json", Ci), $.route("/api/cms/schemas", wi), $.route("/api/cms/schemas.json", wi), $.route("/api/cms", Di), $.route("/api/admin/assets", Z), $.route("/api/v1/node", Ni), $.route("/api/v1/page", Ni), $.route("/api/v1/tree", Ui), $.route("/api/v1/all-paths", qi), $.get("*", async (e) => {
9179
9222
  if (e.env?.ASSETS) {
9180
9223
  let t = await e.env.ASSETS.fetch(e.req.raw);
9181
9224
  if (t.status === 404) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brightsideoy/kama",
3
- "version": "0.1.0-alpha.46",
3
+ "version": "0.1.0-alpha.50",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",