@jackuait/blok-cli 0.21.1 → 0.23.0

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/cli.mjs CHANGED
@@ -41,14 +41,14 @@ var t = "# Migrating from EditorJS to Blok\n\nThis guide covers the breaking cha
41
41
  case "convert-html": {
42
42
  let e = new (await (import("jsdom"))).JSDOM("");
43
43
  globalThis.DOMParser = e.window.DOMParser, globalThis.Node = e.window.Node;
44
- let { convertHtml: t } = await import("./convert-html-Y87KeWXA.mjs");
44
+ let { convertHtml: t } = await import("./convert-html-DofDta-k.mjs");
45
45
  r(t((await import("node:fs")).readFileSync("/dev/stdin", "utf-8")), s);
46
46
  break;
47
47
  }
48
48
  case "convert-gdocs": {
49
49
  let e = new (await (import("jsdom"))).JSDOM("");
50
50
  globalThis.DOMParser = e.window.DOMParser, globalThis.Node = e.window.Node, globalThis.document = e.window.document;
51
- let { convertGdocs: t } = await import("./convert-gdocs-Ckxs9BwZ.mjs");
51
+ let { convertGdocs: t } = await import("./convert-gdocs-DGmfsVqf.mjs");
52
52
  r(t((await import("node:fs")).readFileSync("/dev/stdin", "utf-8")), s);
53
53
  break;
54
54
  }
@@ -0,0 +1,165 @@
1
+ import { a as e, i as t, n, o as r, r as i, t as a } from "./block-builder-B_eFe3eS.mjs";
2
+ //#region src/components/modules/paste/google-docs-preprocessor.ts
3
+ function o(e) {
4
+ let t = document.createElement("div");
5
+ t.innerHTML = e;
6
+ let n = p(t);
7
+ return w(t, n), n && (E(t), f(t)), t.innerHTML;
8
+ }
9
+ function s(e, t) {
10
+ let n = e.parentElement;
11
+ return n === null ? null : n === t ? e : s(n, t);
12
+ }
13
+ function c(e, t, n) {
14
+ let r = e.cloneNode(!1), i = [];
15
+ for (let n of Array.from(e.childNodes)) {
16
+ if (n === t) break;
17
+ i.push(n);
18
+ }
19
+ return i.forEach((e) => r.appendChild(e)), n !== null && r.appendChild(n), r.childNodes.length > 0 ? r : null;
20
+ }
21
+ function l(e, t, n) {
22
+ let r = e.cloneNode(!1), i = Array.from(e.childNodes), a = i.findIndex((e) => e === t), o = i.slice(a + 1);
23
+ return n !== null && r.appendChild(n), o.forEach((e) => r.appendChild(e)), r.childNodes.length > 0 ? r : null;
24
+ }
25
+ function u(e, t) {
26
+ let n = (e, r, i) => {
27
+ if (e === t) return {
28
+ before: r,
29
+ after: i
30
+ };
31
+ let a = e.parentElement;
32
+ return a === null ? {
33
+ before: r,
34
+ after: i
35
+ } : n(a, c(a, e, r), l(a, e, i));
36
+ };
37
+ return n(e, null, null);
38
+ }
39
+ function d(e, t) {
40
+ let n = e.parentElement;
41
+ return n === null || n === t ? !1 : n.tagName === "TABLE" ? !0 : d(n, t);
42
+ }
43
+ function f(e) {
44
+ let t = Array.from(e.querySelectorAll("img"));
45
+ for (let n of t) {
46
+ if (d(n, e)) continue;
47
+ let t = s(n, e);
48
+ if (!t) continue;
49
+ let { before: r, after: i } = u(n, t), a = document.createDocumentFragment();
50
+ r && a.appendChild(r), a.appendChild(n), i && a.appendChild(i), t.replaceWith(a);
51
+ }
52
+ }
53
+ function p(e) {
54
+ let t = e.querySelector("b[id^=\"docs-internal-guid-\"]");
55
+ if (!t) return !1;
56
+ let n = document.createDocumentFragment();
57
+ for (; t.firstChild;) n.appendChild(t.firstChild);
58
+ return t.replaceWith(n), !0;
59
+ }
60
+ function m(e, t, n) {
61
+ return e ? `background-color: ${n}` : t ? "background-color: transparent" : "";
62
+ }
63
+ function h(e) {
64
+ let t = e.replace(/\s/g, "");
65
+ return t === "rgb(0,0,0)" || t === "#000000";
66
+ }
67
+ function g(e) {
68
+ let t = e.replace(/\s/g, "").toLowerCase(), n = /^rgba?\((\d+),(\d+),(\d+)(?:,[\d.]+)?\)$/.exec(t);
69
+ if (n) {
70
+ let e = parseInt(n[1], 10) / 255, t = parseInt(n[2], 10) / 255, r = parseInt(n[3], 10) / 255;
71
+ return .2126 * e + .7152 * t + .0722 * r;
72
+ }
73
+ let r = /^hsla?\(([\d.]+),([\d.]+)%,([\d.]+)%(?:,[\d.]+)?\)$/.exec(t);
74
+ if (r) {
75
+ let e = parseFloat(r[1]) / 360, t = parseFloat(r[2]) / 100, n = parseFloat(r[3]) / 100;
76
+ if (t === 0) return .2126 * n + .7152 * n + .0722 * n;
77
+ let i = n < .5 ? n * (1 + t) : n + t - n * t, a = 2 * n - i, o = (e) => {
78
+ let t = e < 0 ? e + 1 : e > 1 ? e - 1 : e;
79
+ return t < 1 / 6 ? a + (i - a) * 6 * t : t < 1 / 2 ? i : t < 2 / 3 ? a + (i - a) * (2 / 3 - t) * 6 : a;
80
+ }, s = o(e + 1 / 3), c = o(e), l = o(e - 1 / 3);
81
+ return .2126 * s + .7152 * c + .0722 * l;
82
+ }
83
+ let i = /^#([0-9a-f]{6}|[0-9a-f]{3})$/.exec(t);
84
+ if (i) {
85
+ let e = i[1], t = e.length === 3 ? [
86
+ e[0] + e[0],
87
+ e[1] + e[1],
88
+ e[2] + e[2]
89
+ ] : [
90
+ e.substring(0, 2),
91
+ e.substring(2, 4),
92
+ e.substring(4, 6)
93
+ ], n = parseInt(t[0], 16) / 255, r = parseInt(t[1], 16) / 255, a = parseInt(t[2], 16) / 255;
94
+ return .2126 * n + .7152 * r + .0722 * a;
95
+ }
96
+ return -1;
97
+ }
98
+ var _ = r, v = e;
99
+ function y(e) {
100
+ let t = g(e);
101
+ return t >= 0 && t > .75;
102
+ }
103
+ function b(e, n, r, i, a) {
104
+ if (!n && !r) return e;
105
+ let o = n && i !== void 0 ? t(i, "text") : "", s = r && a !== void 0 ? t(a, "bg") : "", c = [n ? `color: ${o}` : "", m(r, n, s)].filter(Boolean).join("; ");
106
+ return c ? `<mark style="${c};">${e}</mark>` : e;
107
+ }
108
+ var x = new Set([
109
+ "H1",
110
+ "H2",
111
+ "H3",
112
+ "H4",
113
+ "H5",
114
+ "H6"
115
+ ]);
116
+ function S(e) {
117
+ let t = e.parentElement;
118
+ return t === null ? !1 : x.has(t.tagName) ? !0 : S(t);
119
+ }
120
+ function C(e, t) {
121
+ let n = e.getAttribute("style") ?? "", r = /font-weight\s*:\s*(700|bold)/i.test(n) && !S(e), i = /font-style\s*:\s*italic/i.test(n), a = /(?<![a-z-])color\s*:\s*([^;]+)/i.exec(n), o = /background-color\s*:\s*([^;]+)/i.exec(n), s = a?.[1]?.trim(), c = o?.[1]?.trim(), l = t ? s !== void 0 && !h(s) : s !== void 0 && !h(s) && !y(s), u = c !== void 0 && c !== "transparent" && !_(c) && !v(c);
122
+ if (!r && !i && !l && !u) return null;
123
+ let d = b(e.innerHTML, l, u, s, c), f = i ? `<i>${d}</i>` : d;
124
+ return r ? `<b>${f}</b>` : f;
125
+ }
126
+ function w(e, t) {
127
+ for (let n of Array.from(e.querySelectorAll("span[style]"))) {
128
+ let e = C(n, t);
129
+ e !== null && n.replaceWith(document.createRange().createContextualFragment(e));
130
+ }
131
+ t && T(e);
132
+ }
133
+ function T(e) {
134
+ for (let n of Array.from(e.querySelectorAll("a[style]"))) {
135
+ let e = n.getAttribute("style") ?? "", r = /(?<![a-z-])color\s*:\s*([^;]+)/i.exec(e), i = /background-color\s*:\s*([^;]+)/i.exec(e), a = r?.[1]?.trim(), o = i?.[1]?.trim(), s = a !== void 0 && !h(a) && a !== "inherit", c = o !== void 0 && o !== "transparent" && o !== "inherit";
136
+ if (!s && !c) continue;
137
+ let l = s ? t(a, "text") : "", u = c ? t(o, "bg") : "", d = [s ? `color: ${l}` : "", m(c, s, u)].filter(Boolean).join("; "), f = n;
138
+ f.innerHTML = `<mark style="${d};">${f.innerHTML}</mark>`, f.style.removeProperty("color"), f.style.removeProperty("background-color");
139
+ }
140
+ }
141
+ function E(e) {
142
+ for (let t of Array.from(e.querySelectorAll("td, th"))) {
143
+ let e = t.querySelectorAll("p");
144
+ if (e.length !== 0) {
145
+ for (let t of Array.from(e)) {
146
+ let e = document.createRange().createContextualFragment(t.innerHTML + "<br>");
147
+ t.replaceWith(e);
148
+ }
149
+ t.innerHTML = t.innerHTML.replace(/(<br\s*\/?>|\s)+$/i, "");
150
+ }
151
+ }
152
+ }
153
+ //#endregion
154
+ //#region src/cli/commands/convert-gdocs/index.ts
155
+ function D(e) {
156
+ let t = o(e), r = new DOMParser().parseFromString(t, "text/html").body;
157
+ i(r), n(r);
158
+ let s = {
159
+ version: "0.22.0",
160
+ blocks: a(r)
161
+ };
162
+ return JSON.stringify(s);
163
+ }
164
+ //#endregion
165
+ export { D as convertGdocs };
@@ -0,0 +1,165 @@
1
+ import { a as e, i as t, n, o as r, r as i, t as a } from "./block-builder-B_eFe3eS.mjs";
2
+ //#region src/components/modules/paste/google-docs-preprocessor.ts
3
+ function o(e) {
4
+ let t = document.createElement("div");
5
+ t.innerHTML = e;
6
+ let n = p(t);
7
+ return w(t, n), n && (E(t), f(t)), t.innerHTML;
8
+ }
9
+ function s(e, t) {
10
+ let n = e.parentElement;
11
+ return n === null ? null : n === t ? e : s(n, t);
12
+ }
13
+ function c(e, t, n) {
14
+ let r = e.cloneNode(!1), i = [];
15
+ for (let n of Array.from(e.childNodes)) {
16
+ if (n === t) break;
17
+ i.push(n);
18
+ }
19
+ return i.forEach((e) => r.appendChild(e)), n !== null && r.appendChild(n), r.childNodes.length > 0 ? r : null;
20
+ }
21
+ function l(e, t, n) {
22
+ let r = e.cloneNode(!1), i = Array.from(e.childNodes), a = i.findIndex((e) => e === t), o = i.slice(a + 1);
23
+ return n !== null && r.appendChild(n), o.forEach((e) => r.appendChild(e)), r.childNodes.length > 0 ? r : null;
24
+ }
25
+ function u(e, t) {
26
+ let n = (e, r, i) => {
27
+ if (e === t) return {
28
+ before: r,
29
+ after: i
30
+ };
31
+ let a = e.parentElement;
32
+ return a === null ? {
33
+ before: r,
34
+ after: i
35
+ } : n(a, c(a, e, r), l(a, e, i));
36
+ };
37
+ return n(e, null, null);
38
+ }
39
+ function d(e, t) {
40
+ let n = e.parentElement;
41
+ return n === null || n === t ? !1 : n.tagName === "TABLE" ? !0 : d(n, t);
42
+ }
43
+ function f(e) {
44
+ let t = Array.from(e.querySelectorAll("img"));
45
+ for (let n of t) {
46
+ if (d(n, e)) continue;
47
+ let t = s(n, e);
48
+ if (!t) continue;
49
+ let { before: r, after: i } = u(n, t), a = document.createDocumentFragment();
50
+ r && a.appendChild(r), a.appendChild(n), i && a.appendChild(i), t.replaceWith(a);
51
+ }
52
+ }
53
+ function p(e) {
54
+ let t = e.querySelector("b[id^=\"docs-internal-guid-\"]");
55
+ if (!t) return !1;
56
+ let n = document.createDocumentFragment();
57
+ for (; t.firstChild;) n.appendChild(t.firstChild);
58
+ return t.replaceWith(n), !0;
59
+ }
60
+ function m(e, t, n) {
61
+ return e ? `background-color: ${n}` : t ? "background-color: transparent" : "";
62
+ }
63
+ function h(e) {
64
+ let t = e.replace(/\s/g, "");
65
+ return t === "rgb(0,0,0)" || t === "#000000";
66
+ }
67
+ function g(e) {
68
+ let t = e.replace(/\s/g, "").toLowerCase(), n = /^rgba?\((\d+),(\d+),(\d+)(?:,[\d.]+)?\)$/.exec(t);
69
+ if (n) {
70
+ let e = parseInt(n[1], 10) / 255, t = parseInt(n[2], 10) / 255, r = parseInt(n[3], 10) / 255;
71
+ return .2126 * e + .7152 * t + .0722 * r;
72
+ }
73
+ let r = /^hsla?\(([\d.]+),([\d.]+)%,([\d.]+)%(?:,[\d.]+)?\)$/.exec(t);
74
+ if (r) {
75
+ let e = parseFloat(r[1]) / 360, t = parseFloat(r[2]) / 100, n = parseFloat(r[3]) / 100;
76
+ if (t === 0) return .2126 * n + .7152 * n + .0722 * n;
77
+ let i = n < .5 ? n * (1 + t) : n + t - n * t, a = 2 * n - i, o = (e) => {
78
+ let t = e < 0 ? e + 1 : e > 1 ? e - 1 : e;
79
+ return t < 1 / 6 ? a + (i - a) * 6 * t : t < 1 / 2 ? i : t < 2 / 3 ? a + (i - a) * (2 / 3 - t) * 6 : a;
80
+ }, s = o(e + 1 / 3), c = o(e), l = o(e - 1 / 3);
81
+ return .2126 * s + .7152 * c + .0722 * l;
82
+ }
83
+ let i = /^#([0-9a-f]{6}|[0-9a-f]{3})$/.exec(t);
84
+ if (i) {
85
+ let e = i[1], t = e.length === 3 ? [
86
+ e[0] + e[0],
87
+ e[1] + e[1],
88
+ e[2] + e[2]
89
+ ] : [
90
+ e.substring(0, 2),
91
+ e.substring(2, 4),
92
+ e.substring(4, 6)
93
+ ], n = parseInt(t[0], 16) / 255, r = parseInt(t[1], 16) / 255, a = parseInt(t[2], 16) / 255;
94
+ return .2126 * n + .7152 * r + .0722 * a;
95
+ }
96
+ return -1;
97
+ }
98
+ var _ = r, v = e;
99
+ function y(e) {
100
+ let t = g(e);
101
+ return t >= 0 && t > .75;
102
+ }
103
+ function b(e, n, r, i, a) {
104
+ if (!n && !r) return e;
105
+ let o = n && i !== void 0 ? t(i, "text") : "", s = r && a !== void 0 ? t(a, "bg") : "", c = [n ? `color: ${o}` : "", m(r, n, s)].filter(Boolean).join("; ");
106
+ return c ? `<mark style="${c};">${e}</mark>` : e;
107
+ }
108
+ var x = new Set([
109
+ "H1",
110
+ "H2",
111
+ "H3",
112
+ "H4",
113
+ "H5",
114
+ "H6"
115
+ ]);
116
+ function S(e) {
117
+ let t = e.parentElement;
118
+ return t === null ? !1 : x.has(t.tagName) ? !0 : S(t);
119
+ }
120
+ function C(e, t) {
121
+ let n = e.getAttribute("style") ?? "", r = /font-weight\s*:\s*(700|bold)/i.test(n) && !S(e), i = /font-style\s*:\s*italic/i.test(n), a = /(?<![a-z-])color\s*:\s*([^;]+)/i.exec(n), o = /background-color\s*:\s*([^;]+)/i.exec(n), s = a?.[1]?.trim(), c = o?.[1]?.trim(), l = t ? s !== void 0 && !h(s) : s !== void 0 && !h(s) && !y(s), u = c !== void 0 && c !== "transparent" && !_(c) && !v(c);
122
+ if (!r && !i && !l && !u) return null;
123
+ let d = b(e.innerHTML, l, u, s, c), f = i ? `<i>${d}</i>` : d;
124
+ return r ? `<b>${f}</b>` : f;
125
+ }
126
+ function w(e, t) {
127
+ for (let n of Array.from(e.querySelectorAll("span[style]"))) {
128
+ let e = C(n, t);
129
+ e !== null && n.replaceWith(document.createRange().createContextualFragment(e));
130
+ }
131
+ t && T(e);
132
+ }
133
+ function T(e) {
134
+ for (let n of Array.from(e.querySelectorAll("a[style]"))) {
135
+ let e = n.getAttribute("style") ?? "", r = /(?<![a-z-])color\s*:\s*([^;]+)/i.exec(e), i = /background-color\s*:\s*([^;]+)/i.exec(e), a = r?.[1]?.trim(), o = i?.[1]?.trim(), s = a !== void 0 && !h(a) && a !== "inherit", c = o !== void 0 && o !== "transparent" && o !== "inherit";
136
+ if (!s && !c) continue;
137
+ let l = s ? t(a, "text") : "", u = c ? t(o, "bg") : "", d = [s ? `color: ${l}` : "", m(c, s, u)].filter(Boolean).join("; "), f = n;
138
+ f.innerHTML = `<mark style="${d};">${f.innerHTML}</mark>`, f.style.removeProperty("color"), f.style.removeProperty("background-color");
139
+ }
140
+ }
141
+ function E(e) {
142
+ for (let t of Array.from(e.querySelectorAll("td, th"))) {
143
+ let e = t.querySelectorAll("p");
144
+ if (e.length !== 0) {
145
+ for (let t of Array.from(e)) {
146
+ let e = document.createRange().createContextualFragment(t.innerHTML + "<br>");
147
+ t.replaceWith(e);
148
+ }
149
+ t.innerHTML = t.innerHTML.replace(/(<br\s*\/?>|\s)+$/i, "");
150
+ }
151
+ }
152
+ }
153
+ //#endregion
154
+ //#region src/cli/commands/convert-gdocs/index.ts
155
+ function D(e) {
156
+ let t = o(e), r = new DOMParser().parseFromString(t, "text/html").body;
157
+ i(r), n(r);
158
+ let s = {
159
+ version: "0.23.0",
160
+ blocks: a(r)
161
+ };
162
+ return JSON.stringify(s);
163
+ }
164
+ //#endregion
165
+ export { D as convertGdocs };
@@ -0,0 +1,13 @@
1
+ import { n as e, r as t, t as n } from "./block-builder-B_eFe3eS.mjs";
2
+ //#region src/cli/commands/convert-html/index.ts
3
+ function r(r) {
4
+ let i = new DOMParser().parseFromString(r, "text/html").body;
5
+ t(i), e(i);
6
+ let a = {
7
+ version: "0.23.0",
8
+ blocks: n(i)
9
+ };
10
+ return JSON.stringify(a);
11
+ }
12
+ //#endregion
13
+ export { r as convertHtml };
@@ -0,0 +1,13 @@
1
+ import { n as e, r as t, t as n } from "./block-builder-B_eFe3eS.mjs";
2
+ //#region src/cli/commands/convert-html/index.ts
3
+ function r(r) {
4
+ let i = new DOMParser().parseFromString(r, "text/html").body;
5
+ t(i), e(i);
6
+ let a = {
7
+ version: "0.22.0",
8
+ blocks: n(i)
9
+ };
10
+ return JSON.stringify(a);
11
+ }
12
+ //#endregion
13
+ export { r as convertHtml };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jackuait/blok-cli",
3
- "version": "0.21.1",
3
+ "version": "0.23.0",
4
4
  "description": "CLI tools for Blok — convert HTML to Blok JSON, generate migration guides",
5
5
  "bin": {
6
6
  "blok-cli": "bin/blok-cli.mjs"