@fileverse/content-processor 0.0.1 → 0.0.2
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/dom-setup.d.ts.map +1 -1
- package/dist/dom-setup.js +9 -17
- package/dist/dom-setup.js.map +1 -1
- package/package.json +2 -3
- package/src/dom-setup.ts +13 -18
package/dist/dom-setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-setup.d.ts","sourceRoot":"","sources":["../src/dom-setup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dom-setup.d.ts","sourceRoot":"","sources":["../src/dom-setup.ts"],"names":[],"mappings":"AAKA,wBAAgB,QAAQ,SAqCvB;AAED,wBAAgB,uBAAuB,kCAGtC;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAKtD"}
|
package/dist/dom-setup.js
CHANGED
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { parseHTML } from 'linkedom';
|
|
2
2
|
import createDOMPurify from 'dompurify';
|
|
3
3
|
let domSetup = false;
|
|
4
|
-
let jsdomInstance = null;
|
|
5
4
|
export function setupDOM() {
|
|
6
5
|
if (domSetup)
|
|
7
6
|
return;
|
|
8
|
-
|
|
9
|
-
pretendToBeVisual: true,
|
|
10
|
-
});
|
|
11
|
-
const { window } = jsdomInstance;
|
|
12
|
-
const { document } = window;
|
|
7
|
+
const { window, document } = parseHTML('<!DOCTYPE html><html><head></head><body></body></html>');
|
|
13
8
|
const g = globalThis;
|
|
14
9
|
g.window = window;
|
|
15
10
|
g.document = document;
|
|
@@ -19,7 +14,8 @@ export function setupDOM() {
|
|
|
19
14
|
g.DOMParser = window.DOMParser;
|
|
20
15
|
g.Element = window.Element;
|
|
21
16
|
g.DocumentFragment = window.DocumentFragment;
|
|
22
|
-
g.getComputedStyle =
|
|
17
|
+
g.getComputedStyle =
|
|
18
|
+
window.getComputedStyle?.bind(window) ?? (() => ({}));
|
|
23
19
|
g.requestAnimationFrame = (cb) => setTimeout(cb, 0);
|
|
24
20
|
g.cancelAnimationFrame = clearTimeout;
|
|
25
21
|
g.innerHeight = 768;
|
|
@@ -28,8 +24,6 @@ export function setupDOM() {
|
|
|
28
24
|
g.scrollBy = () => { };
|
|
29
25
|
g.MutationObserver = window.MutationObserver;
|
|
30
26
|
g.Range = window.Range;
|
|
31
|
-
g.Selection = window.Selection;
|
|
32
|
-
g.getSelection = () => window.getSelection();
|
|
33
27
|
try {
|
|
34
28
|
Object.defineProperty(globalThis, 'navigator', {
|
|
35
29
|
value: window.navigator,
|
|
@@ -37,17 +31,15 @@ export function setupDOM() {
|
|
|
37
31
|
configurable: true,
|
|
38
32
|
});
|
|
39
33
|
}
|
|
40
|
-
catch {
|
|
41
|
-
// navigator may already be defined
|
|
42
|
-
}
|
|
34
|
+
catch { }
|
|
43
35
|
domSetup = true;
|
|
44
36
|
}
|
|
45
37
|
export function createDOMPurifyInstance() {
|
|
46
|
-
const
|
|
47
|
-
return createDOMPurify(
|
|
38
|
+
const { window } = parseHTML('');
|
|
39
|
+
return createDOMPurify(window);
|
|
48
40
|
}
|
|
49
41
|
export function parseHTMLString(html) {
|
|
50
|
-
const
|
|
51
|
-
return
|
|
42
|
+
const { document } = parseHTML(`<!DOCTYPE html><html><body>${html}</body></html>`);
|
|
43
|
+
return document;
|
|
52
44
|
}
|
|
53
45
|
//# sourceMappingURL=dom-setup.js.map
|
package/dist/dom-setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-setup.js","sourceRoot":"","sources":["../src/dom-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"dom-setup.js","sourceRoot":"","sources":["../src/dom-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,eAAe,MAAM,WAAW,CAAC;AAExC,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB,MAAM,UAAU,QAAQ;IACtB,IAAI,QAAQ;QAAE,OAAO;IAErB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CACpC,wDAAwD,CACzD,CAAC;IAEF,MAAM,CAAC,GAAG,UAAiB,CAAC;IAE5B,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;IAClB,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACtB,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACnC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC3B,CAAC,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAC7C,CAAC,CAAC,gBAAgB;QAChB,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,qBAAqB,GAAG,CAAC,EAAc,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,oBAAoB,GAAG,YAAY,CAAC;IACtC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC;IACpB,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC,CAAC,QAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IACtB,CAAC,CAAC,QAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IACtB,CAAC,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAC7C,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAEvB,IAAI,CAAC;QACH,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE;YAC7C,KAAK,EAAE,MAAM,CAAC,SAAS;YACvB,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,QAAQ,GAAG,IAAI,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IACjC,OAAO,eAAe,CAAC,MAAa,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAC5B,8BAA8B,IAAI,gBAAgB,CACnD,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fileverse/content-processor",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "Convert markdown files to Yjs-encoded strings compatible with ddoc Tiptap editor",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -53,13 +53,12 @@
|
|
|
53
53
|
"@tiptap/pm": "^2.11.5",
|
|
54
54
|
"dompurify": "^3.2.4",
|
|
55
55
|
"js-base64": "^3.7.7",
|
|
56
|
-
"
|
|
56
|
+
"linkedom": "^0.16.11",
|
|
57
57
|
"markdown-it": "^14.1.0",
|
|
58
58
|
"markdown-it-footnote": "^4.0.0",
|
|
59
59
|
"yjs": "^13.6.22"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
-
"@types/jsdom": "^21.1.7",
|
|
63
62
|
"@types/markdown-it": "^14.1.2",
|
|
64
63
|
"@types/markdown-it-footnote": "^3.0.4",
|
|
65
64
|
"@types/node": "^22.13.1",
|
package/src/dom-setup.ts
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { parseHTML } from 'linkedom';
|
|
2
2
|
import createDOMPurify from 'dompurify';
|
|
3
3
|
|
|
4
4
|
let domSetup = false;
|
|
5
|
-
let jsdomInstance: JSDOM | null = null;
|
|
6
5
|
|
|
7
6
|
export function setupDOM() {
|
|
8
7
|
if (domSetup) return;
|
|
9
8
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const { window } = jsdomInstance;
|
|
15
|
-
const { document } = window;
|
|
9
|
+
const { window, document } = parseHTML(
|
|
10
|
+
'<!DOCTYPE html><html><head></head><body></body></html>'
|
|
11
|
+
);
|
|
16
12
|
|
|
17
13
|
const g = globalThis as any;
|
|
18
14
|
|
|
@@ -24,7 +20,8 @@ export function setupDOM() {
|
|
|
24
20
|
g.DOMParser = window.DOMParser;
|
|
25
21
|
g.Element = window.Element;
|
|
26
22
|
g.DocumentFragment = window.DocumentFragment;
|
|
27
|
-
g.getComputedStyle =
|
|
23
|
+
g.getComputedStyle =
|
|
24
|
+
window.getComputedStyle?.bind(window) ?? (() => ({}));
|
|
28
25
|
g.requestAnimationFrame = (cb: () => void) => setTimeout(cb, 0);
|
|
29
26
|
g.cancelAnimationFrame = clearTimeout;
|
|
30
27
|
g.innerHeight = 768;
|
|
@@ -33,8 +30,6 @@ export function setupDOM() {
|
|
|
33
30
|
g.scrollBy = () => {};
|
|
34
31
|
g.MutationObserver = window.MutationObserver;
|
|
35
32
|
g.Range = window.Range;
|
|
36
|
-
g.Selection = window.Selection;
|
|
37
|
-
g.getSelection = () => window.getSelection();
|
|
38
33
|
|
|
39
34
|
try {
|
|
40
35
|
Object.defineProperty(globalThis, 'navigator', {
|
|
@@ -42,19 +37,19 @@ export function setupDOM() {
|
|
|
42
37
|
writable: true,
|
|
43
38
|
configurable: true,
|
|
44
39
|
});
|
|
45
|
-
} catch {
|
|
46
|
-
// navigator may already be defined
|
|
47
|
-
}
|
|
40
|
+
} catch {}
|
|
48
41
|
|
|
49
42
|
domSetup = true;
|
|
50
43
|
}
|
|
51
44
|
|
|
52
45
|
export function createDOMPurifyInstance() {
|
|
53
|
-
const
|
|
54
|
-
return createDOMPurify(
|
|
46
|
+
const { window } = parseHTML('');
|
|
47
|
+
return createDOMPurify(window as any);
|
|
55
48
|
}
|
|
56
49
|
|
|
57
50
|
export function parseHTMLString(html: string): Document {
|
|
58
|
-
const
|
|
59
|
-
|
|
51
|
+
const { document } = parseHTML(
|
|
52
|
+
`<!DOCTYPE html><html><body>${html}</body></html>`
|
|
53
|
+
);
|
|
54
|
+
return document;
|
|
60
55
|
}
|