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.
Files changed (54) hide show
  1. package/{esm → dist}/ArrayCollapseTransformer.d.ts +2 -2
  2. package/{script → dist}/DocumentThinningTransformer.d.ts +2 -2
  3. package/dist/ExampleDocument.d.ts +2 -0
  4. package/{esm → dist}/IdentityTransformer.d.ts +5 -3
  5. package/{esm → dist}/NodeVisitor.d.ts +3 -1
  6. package/{esm → dist}/TextCollapseTransformer.d.ts +2 -2
  7. package/{script → dist}/TextVisitor.d.ts +2 -2
  8. package/{script → dist}/WhitespaceStretchingTransformer.d.ts +2 -2
  9. package/{script → dist}/WhitespaceTransformer.d.ts +2 -2
  10. package/{script → dist}/WordCountTransformer.d.ts +2 -2
  11. package/{script → dist}/WordCounterVisitor.d.ts +2 -2
  12. package/dist/index.d.ts +11 -0
  13. package/dist/index.js +1493 -0
  14. package/{script → dist}/types.d.ts +74 -58
  15. package/package.json +40 -11
  16. package/esm/ArrayCollapseTransformer.js +0 -18
  17. package/esm/DocumentThinningTransformer.d.ts +0 -16
  18. package/esm/DocumentThinningTransformer.js +0 -246
  19. package/esm/IdentityTransformer.js +0 -866
  20. package/esm/NodeVisitor.js +0 -414
  21. package/esm/TextCollapseTransformer.js +0 -36
  22. package/esm/TextVisitor.d.ts +0 -15
  23. package/esm/TextVisitor.js +0 -55
  24. package/esm/WhitespaceStretchingTransformer.d.ts +0 -26
  25. package/esm/WhitespaceStretchingTransformer.js +0 -121
  26. package/esm/WhitespaceTransformer.d.ts +0 -12
  27. package/esm/WhitespaceTransformer.js +0 -75
  28. package/esm/WordCountTransformer.d.ts +0 -6
  29. package/esm/WordCountTransformer.js +0 -83
  30. package/esm/WordCounterVisitor.d.ts +0 -13
  31. package/esm/WordCounterVisitor.js +0 -43
  32. package/esm/index.d.ts +0 -11
  33. package/esm/index.js +0 -11
  34. package/esm/package.json +0 -3
  35. package/esm/types.d.ts +0 -351
  36. package/esm/types.js +0 -1
  37. package/script/ArrayCollapseTransformer.d.ts +0 -5
  38. package/script/ArrayCollapseTransformer.js +0 -22
  39. package/script/DocumentThinningTransformer.js +0 -250
  40. package/script/IdentityTransformer.d.ts +0 -59
  41. package/script/IdentityTransformer.js +0 -870
  42. package/script/NodeVisitor.d.ts +0 -59
  43. package/script/NodeVisitor.js +0 -418
  44. package/script/TextCollapseTransformer.d.ts +0 -5
  45. package/script/TextCollapseTransformer.js +0 -40
  46. package/script/TextVisitor.js +0 -59
  47. package/script/WhitespaceStretchingTransformer.js +0 -125
  48. package/script/WhitespaceTransformer.js +0 -79
  49. package/script/WordCountTransformer.js +0 -87
  50. package/script/WordCounterVisitor.js +0 -47
  51. package/script/index.d.ts +0 -11
  52. package/script/index.js +0 -38
  53. package/script/package.json +0 -3
  54. 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; } });
@@ -1,3 +0,0 @@
1
- {
2
- "type": "commonjs"
3
- }
package/script/types.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });