added page indicators
diff --git a/package-lock.json b/package-lock.json
index 61e0f8f..0615b7e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -17,6 +17,8 @@
         "humanize-duration": "^3.27.1",
         "jshaiku": "file:../haiku",
         "json-diff": "^0.7.1",
+        "node-tesseract": "^0.2.7",
+        "structured-clone": "^0.2.2",
         "tesseract.js": "^2.1.5",
         "typescript": "^4.5.5",
         "unscan": "^1.1.2"
@@ -904,6 +906,39 @@
         }
       }
     },
+    "node_modules/node-tesseract": {
+      "version": "0.2.7",
+      "resolved": "https://registry.npmjs.org/node-tesseract/-/node-tesseract-0.2.7.tgz",
+      "integrity": "sha1-yPAvuDUaQnByc1d4wFGYI/JgG4Q=",
+      "dependencies": {
+        "glob": "^5.0.10",
+        "node-uuid": "^1.4.1"
+      }
+    },
+    "node_modules/node-tesseract/node_modules/glob": {
+      "version": "5.0.15",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+      "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+      "dependencies": {
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "2 || 3",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/node-uuid": {
+      "version": "1.4.8",
+      "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz",
+      "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=",
+      "deprecated": "Use uuid module instead",
+      "bin": {
+        "uuid": "bin/uuid"
+      }
+    },
     "node_modules/object-inspect": {
       "version": "1.12.0",
       "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
@@ -1116,6 +1151,11 @@
         "node": ">= 0.8"
       }
     },
+    "node_modules/structured-clone": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/structured-clone/-/structured-clone-0.2.2.tgz",
+      "integrity": "sha1-rJK2vjGVimQ9sw8TNavGobAt/cI="
+    },
     "node_modules/tesseract.js": {
       "version": "2.1.5",
       "resolved": "https://registry.npmjs.org/tesseract.js/-/tesseract.js-2.1.5.tgz",
@@ -2004,6 +2044,34 @@
         "whatwg-url": "^5.0.0"
       }
     },
+    "node-tesseract": {
+      "version": "0.2.7",
+      "resolved": "https://registry.npmjs.org/node-tesseract/-/node-tesseract-0.2.7.tgz",
+      "integrity": "sha1-yPAvuDUaQnByc1d4wFGYI/JgG4Q=",
+      "requires": {
+        "glob": "^5.0.10",
+        "node-uuid": "^1.4.1"
+      },
+      "dependencies": {
+        "glob": {
+          "version": "5.0.15",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+          "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+          "requires": {
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "2 || 3",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        }
+      }
+    },
+    "node-uuid": {
+      "version": "1.4.8",
+      "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz",
+      "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc="
+    },
     "object-inspect": {
       "version": "1.12.0",
       "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
@@ -2161,6 +2229,11 @@
       "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
       "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
     },
+    "structured-clone": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/structured-clone/-/structured-clone-0.2.2.tgz",
+      "integrity": "sha1-rJK2vjGVimQ9sw8TNavGobAt/cI="
+    },
     "tesseract.js": {
       "version": "2.1.5",
       "resolved": "https://registry.npmjs.org/tesseract.js/-/tesseract.js-2.1.5.tgz",