document-ir 0.0.15 → 0.2.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/{esm → dist}/ArrayCollapseTransformer.d.ts +2 -2
- package/{script → dist}/DocumentThinningTransformer.d.ts +2 -2
- package/dist/ExampleDocument.d.ts +2 -0
- package/{esm → dist}/IdentityTransformer.d.ts +5 -3
- package/{esm → dist}/NodeVisitor.d.ts +3 -1
- package/{esm → dist}/TextCollapseTransformer.d.ts +2 -2
- package/{script → dist}/TextVisitor.d.ts +2 -2
- package/{script → dist}/WhitespaceStretchingTransformer.d.ts +2 -2
- package/{script → dist}/WhitespaceTransformer.d.ts +2 -2
- package/{script → dist}/WordCountTransformer.d.ts +2 -2
- package/{script → dist}/WordCounterVisitor.d.ts +2 -2
- package/dist/index.d.ts +11 -0
- package/dist/index.js +1493 -0
- package/{script → dist}/types.d.ts +74 -58
- package/package.json +40 -11
- package/esm/ArrayCollapseTransformer.js +0 -18
- package/esm/DocumentThinningTransformer.d.ts +0 -16
- package/esm/DocumentThinningTransformer.js +0 -246
- package/esm/IdentityTransformer.js +0 -866
- package/esm/NodeVisitor.js +0 -414
- package/esm/TextCollapseTransformer.js +0 -36
- package/esm/TextVisitor.d.ts +0 -15
- package/esm/TextVisitor.js +0 -55
- package/esm/WhitespaceStretchingTransformer.d.ts +0 -26
- package/esm/WhitespaceStretchingTransformer.js +0 -121
- package/esm/WhitespaceTransformer.d.ts +0 -12
- package/esm/WhitespaceTransformer.js +0 -75
- package/esm/WordCountTransformer.d.ts +0 -6
- package/esm/WordCountTransformer.js +0 -83
- package/esm/WordCounterVisitor.d.ts +0 -13
- package/esm/WordCounterVisitor.js +0 -43
- package/esm/index.d.ts +0 -11
- package/esm/index.js +0 -11
- package/esm/package.json +0 -3
- package/esm/types.d.ts +0 -351
- package/esm/types.js +0 -1
- package/script/ArrayCollapseTransformer.d.ts +0 -5
- package/script/ArrayCollapseTransformer.js +0 -22
- package/script/DocumentThinningTransformer.js +0 -250
- package/script/IdentityTransformer.d.ts +0 -59
- package/script/IdentityTransformer.js +0 -870
- package/script/NodeVisitor.d.ts +0 -59
- package/script/NodeVisitor.js +0 -418
- package/script/TextCollapseTransformer.d.ts +0 -5
- package/script/TextCollapseTransformer.js +0 -40
- package/script/TextVisitor.js +0 -59
- package/script/WhitespaceStretchingTransformer.js +0 -125
- package/script/WhitespaceTransformer.js +0 -79
- package/script/WordCountTransformer.js +0 -87
- package/script/WordCounterVisitor.js +0 -47
- package/script/index.d.ts +0 -11
- package/script/index.js +0 -38
- package/script/package.json +0 -3
- package/script/types.js +0 -2
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WhitespaceTransformer = void 0;
|
|
4
|
-
const IdentityTransformer_js_1 = require("./IdentityTransformer.js");
|
|
5
|
-
class RemoveEmptyTextTransformer extends IdentityTransformer_js_1.IdentityTransformer {
|
|
6
|
-
// deno-lint-ignore require-await
|
|
7
|
-
async text(node) {
|
|
8
|
-
if (node.text == "") {
|
|
9
|
-
return null;
|
|
10
|
-
}
|
|
11
|
-
return node;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
class WhitespaceTransformer extends IdentityTransformer_js_1.IdentityTransformer {
|
|
15
|
-
constructor() {
|
|
16
|
-
super();
|
|
17
|
-
Object.defineProperty(this, "stripWhitespace", {
|
|
18
|
-
enumerable: true,
|
|
19
|
-
configurable: true,
|
|
20
|
-
writable: true,
|
|
21
|
-
value: void 0
|
|
22
|
-
});
|
|
23
|
-
Object.defineProperty(this, "lastText", {
|
|
24
|
-
enumerable: true,
|
|
25
|
-
configurable: true,
|
|
26
|
-
writable: true,
|
|
27
|
-
value: void 0
|
|
28
|
-
});
|
|
29
|
-
this.stripWhitespace = true;
|
|
30
|
-
this.lastText = null;
|
|
31
|
-
}
|
|
32
|
-
// deno-lint-ignore require-await
|
|
33
|
-
async text(node) {
|
|
34
|
-
let result = "";
|
|
35
|
-
for (const c of node.text) {
|
|
36
|
-
if (c == " " || c == "\n" || c == "\t" || c == "\r") {
|
|
37
|
-
if (!this.stripWhitespace) {
|
|
38
|
-
result += " ";
|
|
39
|
-
this.stripWhitespace = true;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
result += c;
|
|
44
|
-
this.stripWhitespace = false;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
if (result.length == 0) {
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
const text = {
|
|
51
|
-
type: "text",
|
|
52
|
-
text: result,
|
|
53
|
-
};
|
|
54
|
-
this.lastText = text;
|
|
55
|
-
return text;
|
|
56
|
-
}
|
|
57
|
-
stripLastText() {
|
|
58
|
-
if (this.lastText) {
|
|
59
|
-
if (this.lastText.text.endsWith(" ")) {
|
|
60
|
-
this.lastText.text = this.lastText.text.slice(0, -1);
|
|
61
|
-
}
|
|
62
|
-
this.lastText = null;
|
|
63
|
-
}
|
|
64
|
-
this.stripWhitespace = true;
|
|
65
|
-
}
|
|
66
|
-
// deno-lint-ignore require-await
|
|
67
|
-
async beforeBlock() {
|
|
68
|
-
this.stripLastText();
|
|
69
|
-
}
|
|
70
|
-
// deno-lint-ignore require-await
|
|
71
|
-
async afterBlock() {
|
|
72
|
-
this.stripLastText();
|
|
73
|
-
}
|
|
74
|
-
async transform(node) {
|
|
75
|
-
const result = await super.transform(node);
|
|
76
|
-
return await new RemoveEmptyTextTransformer().transform(result);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
exports.WhitespaceTransformer = WhitespaceTransformer;
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WordCounterTransformer = void 0;
|
|
4
|
-
const DocumentThinningTransformer_js_1 = require("./DocumentThinningTransformer.js");
|
|
5
|
-
const WordCounterVisitor_js_1 = require("./WordCounterVisitor.js");
|
|
6
|
-
const index_js_1 = require("./index.js");
|
|
7
|
-
function convertHierarchy(parent) {
|
|
8
|
-
const docHierarchy = {
|
|
9
|
-
headerText: parent.header,
|
|
10
|
-
headerId: parent.headerId,
|
|
11
|
-
words: 0,
|
|
12
|
-
totalWords: 0,
|
|
13
|
-
children: [],
|
|
14
|
-
};
|
|
15
|
-
const visitor = new WordCounterVisitor_js_1.WordCounterVisitor();
|
|
16
|
-
for (const node of parent.nodes) {
|
|
17
|
-
visitor.visit(node);
|
|
18
|
-
}
|
|
19
|
-
docHierarchy.words = visitor.getCount();
|
|
20
|
-
docHierarchy.totalWords = docHierarchy.words;
|
|
21
|
-
for (const child of parent.children) {
|
|
22
|
-
const childHierarchy = convertHierarchy(child);
|
|
23
|
-
docHierarchy.children.push(childHierarchy);
|
|
24
|
-
docHierarchy.totalWords += childHierarchy.totalWords;
|
|
25
|
-
}
|
|
26
|
-
return docHierarchy;
|
|
27
|
-
}
|
|
28
|
-
class WordCounterTransformer extends index_js_1.IdentityTransformer {
|
|
29
|
-
constructor() {
|
|
30
|
-
super();
|
|
31
|
-
}
|
|
32
|
-
async transform(node) {
|
|
33
|
-
// Isolate it
|
|
34
|
-
const jsonNode = JSON.parse(JSON.stringify(node));
|
|
35
|
-
const thinned = await new DocumentThinningTransformer_js_1.DocumentThinningTransformer().transform(jsonNode);
|
|
36
|
-
const stack = [];
|
|
37
|
-
const root = {
|
|
38
|
-
header: node.title,
|
|
39
|
-
headerId: "title",
|
|
40
|
-
nodes: [],
|
|
41
|
-
children: [],
|
|
42
|
-
depth: 1,
|
|
43
|
-
};
|
|
44
|
-
stack.push(root);
|
|
45
|
-
let depth = 1;
|
|
46
|
-
for (const node of thinned.content) {
|
|
47
|
-
if (node.type == "header") {
|
|
48
|
-
if (node.level == 1) {
|
|
49
|
-
// never pop the root
|
|
50
|
-
continue;
|
|
51
|
-
}
|
|
52
|
-
else if (node.level <= depth) {
|
|
53
|
-
for (let i = stack.length - 1; i > 0; i--) {
|
|
54
|
-
if (stack[i].depth >= node.level) {
|
|
55
|
-
stack.pop();
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
const visitor = new index_js_1.TextVisitor();
|
|
60
|
-
visitor.visit(node);
|
|
61
|
-
const h = {
|
|
62
|
-
header: visitor.getText(),
|
|
63
|
-
depth: node.level,
|
|
64
|
-
children: [],
|
|
65
|
-
nodes: [],
|
|
66
|
-
};
|
|
67
|
-
if (node.htmlId) {
|
|
68
|
-
h.headerId = node.htmlId;
|
|
69
|
-
}
|
|
70
|
-
stack[stack.length - 1].children.push(h);
|
|
71
|
-
stack.push(h);
|
|
72
|
-
depth = node.level;
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
stack[stack.length - 1].nodes.push(node);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
// The transformer does not actually walk through the document tree
|
|
79
|
-
// We just append a newly calculated hierarchy object
|
|
80
|
-
const doc = {
|
|
81
|
-
...node,
|
|
82
|
-
};
|
|
83
|
-
doc.hierarchy = convertHierarchy(root);
|
|
84
|
-
return doc;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
exports.WordCounterTransformer = WordCounterTransformer;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WordCounterVisitor = void 0;
|
|
4
|
-
const index_js_1 = require("./index.js");
|
|
5
|
-
class WordCounterVisitor extends index_js_1.NodeVisitor {
|
|
6
|
-
constructor() {
|
|
7
|
-
super();
|
|
8
|
-
Object.defineProperty(this, "count", {
|
|
9
|
-
enumerable: true,
|
|
10
|
-
configurable: true,
|
|
11
|
-
writable: true,
|
|
12
|
-
value: void 0
|
|
13
|
-
});
|
|
14
|
-
Object.defineProperty(this, "texts", {
|
|
15
|
-
enumerable: true,
|
|
16
|
-
configurable: true,
|
|
17
|
-
writable: true,
|
|
18
|
-
value: void 0
|
|
19
|
-
});
|
|
20
|
-
this.count = 0;
|
|
21
|
-
this.texts = [];
|
|
22
|
-
}
|
|
23
|
-
countText() {
|
|
24
|
-
if (this.texts.length > 0) {
|
|
25
|
-
this.count += this.texts.join("").split(" ").length;
|
|
26
|
-
this.texts = [];
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
beforeBlock() {
|
|
30
|
-
this.countText();
|
|
31
|
-
}
|
|
32
|
-
afterBlock() {
|
|
33
|
-
this.countText();
|
|
34
|
-
}
|
|
35
|
-
text(node) {
|
|
36
|
-
this.texts.push(node.text);
|
|
37
|
-
}
|
|
38
|
-
document(node) {
|
|
39
|
-
super.document(node);
|
|
40
|
-
this.countText();
|
|
41
|
-
}
|
|
42
|
-
getCount() {
|
|
43
|
-
this.countText();
|
|
44
|
-
return this.count;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
exports.WordCounterVisitor = WordCounterVisitor;
|
package/script/index.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export * from "./types.js";
|
|
2
|
-
export { ArrayCollapseTransformer } from "./ArrayCollapseTransformer.js";
|
|
3
|
-
export { IdentityTransformer } from "./IdentityTransformer.js";
|
|
4
|
-
export { TextCollapseTransformer } from "./TextCollapseTransformer.js";
|
|
5
|
-
export { WhitespaceTransformer } from "./WhitespaceTransformer.js";
|
|
6
|
-
export { WhitespaceStretchingTransformer } from "./WhitespaceStretchingTransformer.js";
|
|
7
|
-
export { NodeVisitor } from "./NodeVisitor.js";
|
|
8
|
-
export { TextVisitor } from "./TextVisitor.js";
|
|
9
|
-
export { WordCounterTransformer } from "./WordCountTransformer.js";
|
|
10
|
-
export { WordCounterVisitor } from "./WordCounterVisitor.js";
|
|
11
|
-
export { DocumentThinningTransformer } from "./DocumentThinningTransformer.js";
|
package/script/index.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.DocumentThinningTransformer = exports.WordCounterVisitor = exports.WordCounterTransformer = exports.TextVisitor = exports.NodeVisitor = exports.WhitespaceStretchingTransformer = exports.WhitespaceTransformer = exports.TextCollapseTransformer = exports.IdentityTransformer = exports.ArrayCollapseTransformer = void 0;
|
|
18
|
-
__exportStar(require("./types.js"), exports);
|
|
19
|
-
var ArrayCollapseTransformer_js_1 = require("./ArrayCollapseTransformer.js");
|
|
20
|
-
Object.defineProperty(exports, "ArrayCollapseTransformer", { enumerable: true, get: function () { return ArrayCollapseTransformer_js_1.ArrayCollapseTransformer; } });
|
|
21
|
-
var IdentityTransformer_js_1 = require("./IdentityTransformer.js");
|
|
22
|
-
Object.defineProperty(exports, "IdentityTransformer", { enumerable: true, get: function () { return IdentityTransformer_js_1.IdentityTransformer; } });
|
|
23
|
-
var TextCollapseTransformer_js_1 = require("./TextCollapseTransformer.js");
|
|
24
|
-
Object.defineProperty(exports, "TextCollapseTransformer", { enumerable: true, get: function () { return TextCollapseTransformer_js_1.TextCollapseTransformer; } });
|
|
25
|
-
var WhitespaceTransformer_js_1 = require("./WhitespaceTransformer.js");
|
|
26
|
-
Object.defineProperty(exports, "WhitespaceTransformer", { enumerable: true, get: function () { return WhitespaceTransformer_js_1.WhitespaceTransformer; } });
|
|
27
|
-
var WhitespaceStretchingTransformer_js_1 = require("./WhitespaceStretchingTransformer.js");
|
|
28
|
-
Object.defineProperty(exports, "WhitespaceStretchingTransformer", { enumerable: true, get: function () { return WhitespaceStretchingTransformer_js_1.WhitespaceStretchingTransformer; } });
|
|
29
|
-
var NodeVisitor_js_1 = require("./NodeVisitor.js");
|
|
30
|
-
Object.defineProperty(exports, "NodeVisitor", { enumerable: true, get: function () { return NodeVisitor_js_1.NodeVisitor; } });
|
|
31
|
-
var TextVisitor_js_1 = require("./TextVisitor.js");
|
|
32
|
-
Object.defineProperty(exports, "TextVisitor", { enumerable: true, get: function () { return TextVisitor_js_1.TextVisitor; } });
|
|
33
|
-
var WordCountTransformer_js_1 = require("./WordCountTransformer.js");
|
|
34
|
-
Object.defineProperty(exports, "WordCounterTransformer", { enumerable: true, get: function () { return WordCountTransformer_js_1.WordCounterTransformer; } });
|
|
35
|
-
var WordCounterVisitor_js_1 = require("./WordCounterVisitor.js");
|
|
36
|
-
Object.defineProperty(exports, "WordCounterVisitor", { enumerable: true, get: function () { return WordCounterVisitor_js_1.WordCounterVisitor; } });
|
|
37
|
-
var DocumentThinningTransformer_js_1 = require("./DocumentThinningTransformer.js");
|
|
38
|
-
Object.defineProperty(exports, "DocumentThinningTransformer", { enumerable: true, get: function () { return DocumentThinningTransformer_js_1.DocumentThinningTransformer; } });
|
package/script/package.json
DELETED
package/script/types.js
DELETED