{"_id":"@craftthingy-digital-innovation/cty-ocr-queue","_rev":"3-d42fa544ae39809da9499e8ba8f91e51","name":"@craftthingy-digital-innovation/cty-ocr-queue","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.2":{"name":"@craftthingy-digital-innovation/cty-ocr-queue","version":"1.0.2","_id":"@craftthingy-digital-innovation/cty-ocr-queue@1.0.2","maintainers":[{"name":"killerking69","email":"alifnurhidayatwork@gmail.com"}],"homepage":"https://github.com/CraftThingy-Digital-Innovation/cty-ocr-queue#readme","bugs":{"url":"https://github.com/CraftThingy-Digital-Innovation/cty-ocr-queue/issues"},"dist":{"shasum":"f1a802f370ce7948c7c83f6b1fc53f8b3bcd4b5d","tarball":"https://registry.npmjs.org/@craftthingy-digital-innovation/cty-ocr-queue/-/cty-ocr-queue-1.0.2.tgz","fileCount":6,"integrity":"sha512-EgwdyQfnob1FJLjCaxTj6kcFuEF6YYva7a+msnf2FiGNw0gGPCh+6n0L8o0/Cd7rjZowzCKsnGVzw4acPzZEOw==","signatures":[{"sig":"MEQCIEi2bC9BVm9m0wOL+N46BVZO6zwGvda+ZdBaBESPRgjiAiAR7hfSJS/wCGj4fAEn1xe1SYOgs95hroCikTEDwLPBGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17937},"main":"./dist/cty-ocr-queue.umd.js","type":"module","module":"./dist/cty-ocr-queue.es.js","exports":{".":{"import":"./dist/cty-ocr-queue.es.js","require":"./dist/cty-ocr-queue.umd.js"}},"gitHead":"2015cb05b57c5202b81fdd78bd648242b5c30156","scripts":{"build":"vite build"},"_npmUser":{"name":"killerking69","email":"alifnurhidayatwork@gmail.com"},"repository":{"url":"git+https://github.com/CraftThingy-Digital-Innovation/cty-ocr-queue.git","type":"git"},"_npmVersion":"11.6.1","description":"Isomorphic sequential background queue manager for client-side and server-side OCR processing.","directories":{},"_nodeVersion":"23.11.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cty-ocr-queue_1.0.2_1783086831207_0.8293939417889558","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@craftthingy-digital-innovation/cty-ocr-queue","version":"1.0.3","_id":"@craftthingy-digital-innovation/cty-ocr-queue@1.0.3","maintainers":[{"name":"killerking69","email":"alifnurhidayatwork@gmail.com"}],"homepage":"https://github.com/CraftThingy-Digital-Innovation/cty-ocr-queue#readme","bugs":{"url":"https://github.com/CraftThingy-Digital-Innovation/cty-ocr-queue/issues"},"dist":{"shasum":"5545e3f5b1ef7e78c30071fd7696b5e77b23e0ef","tarball":"https://registry.npmjs.org/@craftthingy-digital-innovation/cty-ocr-queue/-/cty-ocr-queue-1.0.3.tgz","fileCount":6,"integrity":"sha512-bllOryfcrieH4Q8Z+1WnYiWkwdJPH7pO9T+BT8U+FlxN4nxx0UypxVUqtxYcOxqrqrzMvSt/0duf9wum6bVBNA==","signatures":[{"sig":"MEUCIQDBrxm67PEAMVYWnt296hSoxUnRhhtk23qzuL7g2GtppAIgCbBxglTl3Sfco2KX82pO3TzfRLiVi5QxRqIWLUZZ7Ns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18159},"main":"./dist/cty-ocr-queue.umd.js","type":"module","module":"./dist/cty-ocr-queue.es.js","exports":{".":{"import":"./dist/cty-ocr-queue.es.js","require":"./dist/cty-ocr-queue.umd.js"}},"gitHead":"9f31ba0ab2c6ccdf19e75eee87ee246f861190b8","scripts":{"build":"vite build"},"_npmUser":{"name":"killerking69","email":"alifnurhidayatwork@gmail.com"},"repository":{"url":"git+https://github.com/CraftThingy-Digital-Innovation/cty-ocr-queue.git","type":"git"},"_npmVersion":"11.6.1","description":"Isomorphic sequential background queue manager for client-side and server-side OCR processing.","directories":{},"_nodeVersion":"23.11.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/cty-ocr-queue_1.0.3_1783090548955_0.6916713857483328","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@craftthingy-digital-innovation/cty-ocr-queue","description":"Isomorphic sequential background queue manager for client-side and server-side OCR processing.","version":"1.0.4","license":"SEE LICENSE IN LICENSE","type":"module","repository":{"type":"git","url":"git+https://github.com/CraftThingy-Digital-Innovation/cty-ocr-queue.git"},"bugs":{"url":"https://github.com/CraftThingy-Digital-Innovation/cty-ocr-queue/issues"},"homepage":"https://github.com/CraftThingy-Digital-Innovation/cty-ocr-queue#readme","main":"./dist/cty-ocr-queue.umd.js","module":"./dist/cty-ocr-queue.es.js","exports":{".":{"import":"./dist/cty-ocr-queue.es.js","require":"./dist/cty-ocr-queue.umd.js"}},"scripts":{"build":"vite build"},"publishConfig":{"access":"public"},"dependencies":{},"devDependencies":{"vite":"^5.2.0"},"_id":"@craftthingy-digital-innovation/cty-ocr-queue@1.0.4","gitHead":"5461c033c9ed98bda38c21ed72cf45939ca24314","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-pMrrBery4o4atxKO0Pd5J1WLZeVOB+VRAOQ5DvBqXOHngPiavlVdfxEpD7bsPIXJC3RMT1MC7d0vVt4lhkBZ1Q==","shasum":"9585ac9600d2347188a72d429157408e79fd8d60","tarball":"https://registry.npmjs.org/@craftthingy-digital-innovation/cty-ocr-queue/-/cty-ocr-queue-1.0.4.tgz","fileCount":6,"unpackedSize":18162,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD53uSB8z58vHTdEpzll8DdMeF0/nnAksdtXP1TWAptswIhAJlr+AlQoano4v3WO8gr1iqmw0MVR19qGIJjq66AxGNc"}]},"_npmUser":{"name":"killerking69","email":"alifnurhidayatwork@gmail.com"},"directories":{},"maintainers":[{"name":"killerking69","email":"alifnurhidayatwork@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cty-ocr-queue_1.0.4_1783146795389_0.07985853841083967"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-03T13:53:51.023Z","modified":"2026-07-04T06:33:15.674Z","1.0.2":"2026-07-03T13:53:51.325Z","1.0.3":"2026-07-03T14:55:49.093Z","1.0.4":"2026-07-04T06:33:15.553Z"},"bugs":{"url":"https://github.com/CraftThingy-Digital-Innovation/cty-ocr-queue/issues"},"homepage":"https://github.com/CraftThingy-Digital-Innovation/cty-ocr-queue#readme","repository":{"type":"git","url":"git+https://github.com/CraftThingy-Digital-Innovation/cty-ocr-queue.git"},"description":"Isomorphic sequential background queue manager for client-side and server-side OCR processing.","maintainers":[{"name":"killerking69","email":"alifnurhidayatwork@gmail.com"}],"readme":"# @craftthingy-digital-innovation/cty-ocr-queue\n\nBilingual documentation: [Bahasa Indonesia](#bahasa-indonesia) | [English](#english)\n\n---\n\n## Bahasa Indonesia\n\nLibrary JavaScript modular isomorphic (Universal) untuk mengelola antrean pemrosesan foto OCR (Optical Character Recognition) secara berurutan (sekuensial) baik di browser maupun di server Node.js demi menghemat pemakaian memori RAM & CPU komputer client/server.\n\n### Fitur Utama\n- ⏱️ **Sequential Processing:** Mengantrekan pemrosesan gambar secara teratur (satu per satu) untuk mencegah tabrakan memory akibat pemanggilan library AI paralel.\n- ⚙️ **Queue Lifecycle Status:** Melacak status pengerjaan setiap item (`pending`, `processing`, `ready`, `error`).\n- 🌐 **Isomorphic & Environment Agnostic:** Bekerja mulus di Browser (menggunakan DOM Image loader) maupun di Node.js (menggunakan file paths, buffers, atau stream).\n\n### Instalasi\n```bash\nnpm install @craftthingy-digital-innovation/cty-ocr-queue\n```\n\n### Cara Penggunaan\n```javascript\nimport { OcrQueueManager } from '@craftthingy-digital-innovation/cty-ocr-queue';\n\nconst ocrQueue = new OcrQueueManager({\n  getOcrClient: async () => {\n    // Kembalikan instansi PaddleOCRClient / Tesseract Anda\n    return myOcrClientInstance;\n  },\n  onQueueUpdate: (queue) => {\n    console.log(\"Antrean Terkini:\", queue);\n  },\n  onItemReady: (item, index) => {\n    console.log(`Foto ${item.filename} berhasil di-OCR!`, item.results);\n  }\n});\n\n// Menambahkan gambar baru ke antrean\nocrQueue.enqueue({\n  id: 'image-uuid-abc',\n  filename: 'paspor_budi.jpg',\n  url: 'data:image/jpeg;base64,...' // browser URL atau Node.js Buffer\n});\n```\n\n---\n\n## English\n\nA modular isomorphic (Universal) JavaScript library to manage background OCR (Optical Character Recognition) image queues sequentially across both Browser and Node.js environments.\n\n### Key Features\n- ⏱️ **Sequential Processing:** Serializes background image analysis tasks to prevent client crashes due to parallel AI engine memory usage.\n- ⚙️ **Queue Lifecycle Status:** Tracks item-level state machines (`pending`, `processing`, `ready`, `error`).\n- 🌐 **Isomorphic & Environment Agnostic:** Loads DOM Images automatically in Browser environments, and supports Buffers/Streams/Paths natively in Node.js.\n\n### Installation\n```bash\nnpm install @craftthingy-digital-innovation/cty-ocr-queue\n```\n\n### Usage\n```javascript\nimport { OcrQueueManager } from '@craftthingy-digital-innovation/cty-ocr-queue';\n\nconst ocrQueue = new OcrQueueManager({\n  getOcrClient: async () => {\n    return myPaddleOCRInstance;\n  },\n  onQueueUpdate: (queue) => {\n    renderSidebar(queue);\n  }\n});\n\nocrQueue.enqueue({\n  filename: 'doc.jpg',\n  url: 'data:image/jpeg;base64,...'\n});\n```\n\n## License\nLicensed under Public-Source Corporate Royalty License (PSCRL). See [LICENSE](./LICENSE) for details.\n","readmeFilename":"README.md","license":"SEE LICENSE IN LICENSE"}