{"_id":"kuromoji-ko","_rev":"9-49dd845c9401b8090c5998dcdafbe4d4","name":"kuromoji-ko","dist-tags":{"latest":"1.0.8"},"versions":{"1.0.0":{"name":"kuromoji-ko","version":"1.0.0","keywords":["korean","morphological-analysis","tokenizer","nlp","mecab","mecab-ko","hangul","kuromoji","serverless","nextjs","vercel"],"author":{"name":"Richard Paynter"},"license":"Apache-2.0","_id":"kuromoji-ko@1.0.0","maintainers":[{"name":"elfsmelf","email":"elfsmelf@gmail.com"}],"homepage":"https://github.com/richardpaynter/kuromoji-ko#readme","bugs":{"url":"https://github.com/richardpaynter/kuromoji-ko/issues"},"dist":{"shasum":"bcc85d192b1af825931099da59b053bc646ce917","tarball":"https://registry.npmjs.org/kuromoji-ko/-/kuromoji-ko-1.0.0.tgz","fileCount":18,"integrity":"sha512-ghUIzd12FHBi1/FFdyKOTYgrvA4WSvsnEKSiDfABTcz8fJ9bykGJ7dZzsY5JSjWcIGm7TokDcR+ka14Xdh3W5Q==","signatures":[{"sig":"MEUCIHhIH1mNNnXWOFClClrE4WqbPrXZ9dP37fGSIF56SSUjAiEAnqWV6MMObuX14uS5Y00YWM4KifuV5WhubzO56+MyTRo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28548002},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"2de1ec69b2bc75e15ff81939889f3610677d97dd","scripts":{"dev":"tsup src/index.ts --format esm --watch","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts --clean","typecheck":"tsc --noEmit","build:dict":"tsx scripts/build-dictionary.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"elfsmelf","email":"elfsmelf@gmail.com"},"repository":{"url":"git+https://github.com/richardpaynter/kuromoji-ko.git","type":"git"},"_npmVersion":"10.8.2","description":"Pure TypeScript Korean Morphological Analyzer - serverless compatible, based on kuromoji.js and mecab-ko-dic","directories":{},"_nodeVersion":"20.17.0","dependencies":{"pako":"^2.1.0","doublearray":"^0.0.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.1","vitest":"^1.1.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pako":"^2.0.4"},"_npmOperationalInternal":{"tmp":"tmp/kuromoji-ko_1.0.0_1768089562177_0.8384576176925516","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"kuromoji-ko","version":"1.0.1","keywords":["korean","morphological-analysis","tokenizer","nlp","mecab","mecab-ko","hangul","kuromoji","serverless","nextjs","vercel"],"author":{"name":"Richard Paynter"},"license":"Apache-2.0","_id":"kuromoji-ko@1.0.1","maintainers":[{"name":"elfsmelf","email":"elfsmelf@gmail.com"}],"homepage":"https://github.com/elfsmelf/kuromoji-ko#readme","bugs":{"url":"https://github.com/elfsmelf/kuromoji-ko/issues"},"dist":{"shasum":"3806aaadb9cc4588accf1cbc33edca00f40cb87e","tarball":"https://registry.npmjs.org/kuromoji-ko/-/kuromoji-ko-1.0.1.tgz","fileCount":18,"integrity":"sha512-CtgBPiYl5DEvrGlAN1S1VvWaaZznwa3CIqPGB2Hiq+l/56kaT9EJiMYNSd14+9SYmLLyxDUovVl+9kW28NKrng==","signatures":[{"sig":"MEYCIQCftYiAuyYeRwREI5OLxC7xN1Z3XBuCTrleHHh6Sm43hgIhAKUynX6qUtR/QJuWbfK/sdWt20KasY3D46wso3baF58E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28547984},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"2de1ec69b2bc75e15ff81939889f3610677d97dd","scripts":{"dev":"tsup src/index.ts --format esm --watch","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts --clean","typecheck":"tsc --noEmit","build:dict":"tsx scripts/build-dictionary.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"elfsmelf","email":"elfsmelf@gmail.com"},"repository":{"url":"git+https://github.com/elfsmelf/kuromoji-ko.git","type":"git"},"_npmVersion":"10.8.2","description":"Pure TypeScript Korean Morphological Analyzer - serverless compatible, based on kuromoji.js and mecab-ko-dic","directories":{},"_nodeVersion":"20.17.0","dependencies":{"pako":"^2.1.0","doublearray":"^0.0.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.1","vitest":"^1.1.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pako":"^2.0.4"},"_npmOperationalInternal":{"tmp":"tmp/kuromoji-ko_1.0.1_1768089708273_0.707102899003716","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"kuromoji-ko","version":"1.0.2","keywords":["korean","morphological-analysis","tokenizer","nlp","mecab","mecab-ko","hangul","kuromoji","serverless","nextjs","vercel"],"author":{"name":"Richard Paynter"},"license":"Apache-2.0","_id":"kuromoji-ko@1.0.2","maintainers":[{"name":"elfsmelf","email":"elfsmelf@gmail.com"}],"homepage":"https://github.com/elfsmelf/kuromoji-ko#readme","bugs":{"url":"https://github.com/elfsmelf/kuromoji-ko/issues"},"dist":{"shasum":"e0f80098f79e0465f39789944b235876b77c3d56","tarball":"https://registry.npmjs.org/kuromoji-ko/-/kuromoji-ko-1.0.2.tgz","fileCount":18,"integrity":"sha512-bTnlr2a8AVM9cbjTJZd5NLOSyWrCHjT4sI8zUhVkl25f0vGLyPeDHiwwiQZQyG5nZj48WsNn+FVSqca4pYPv4w==","signatures":[{"sig":"MEYCIQDjI4IeVSfgftwXqoXWOApav4VKjqv/RGqaSE4wiriEoAIhAJ1KkYzTG+P2L7TGHaVgqcrkXq8g3OYS9Do/HJfBCSyF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28568460},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"ac9c7a56de7403f6db8fd6af2a02e14384994100","scripts":{"dev":"tsup src/index.ts --format esm --watch","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts --clean","typecheck":"tsc --noEmit","build:dict":"tsx scripts/build-dictionary.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"elfsmelf","email":"elfsmelf@gmail.com"},"repository":{"url":"git+https://github.com/elfsmelf/kuromoji-ko.git","type":"git"},"_npmVersion":"10.8.2","description":"Pure TypeScript Korean Morphological Analyzer - serverless compatible, based on kuromoji.js and mecab-ko-dic","directories":{},"_nodeVersion":"20.17.0","dependencies":{"pako":"^2.1.0","doublearray":"^0.0.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.1","vitest":"^1.1.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pako":"^2.0.4"},"_npmOperationalInternal":{"tmp":"tmp/kuromoji-ko_1.0.2_1768094870834_0.16592319288403168","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"kuromoji-ko","version":"1.0.3","keywords":["korean","morphological-analysis","tokenizer","nlp","mecab","mecab-ko","hangul","kuromoji","serverless","nextjs","vercel"],"author":{"name":"Richard Paynter"},"license":"Apache-2.0","_id":"kuromoji-ko@1.0.3","maintainers":[{"name":"elfsmelf","email":"elfsmelf@gmail.com"}],"homepage":"https://github.com/elfsmelf/kuromoji-ko#readme","bugs":{"url":"https://github.com/elfsmelf/kuromoji-ko/issues"},"dist":{"shasum":"d98357109a6a115822e98007a26d7d5c8ef77bfa","tarball":"https://registry.npmjs.org/kuromoji-ko/-/kuromoji-ko-1.0.3.tgz","fileCount":18,"integrity":"sha512-uXpDp6f4fOQWDqNd6sOxgmHp69TXPZZxcgDLHbRZ3PvKOgE1vL+UzCUAqlN7RnZfU1HNWcqrbdFWeIl/zgNW8w==","signatures":[{"sig":"MEUCIGJy0cZ3l596IIBt+1EL1O3a7uvefWfH9RGOA6N7GvCsAiEA29hh4m8AXPq4p/3ql8dK0w8fFUzDrw/KiAcO1O5WJK8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28568460},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"244beb80418bf15b1c4184bda556594250409cc1","scripts":{"dev":"tsup src/index.ts --format esm --watch","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts --clean","typecheck":"tsc --noEmit","build:dict":"tsx scripts/build-dictionary.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"elfsmelf","email":"elfsmelf@gmail.com"},"repository":{"url":"git+https://github.com/elfsmelf/kuromoji-ko.git","type":"git"},"_npmVersion":"10.8.2","description":"Pure TypeScript Korean Morphological Analyzer - serverless compatible, based on kuromoji.js and mecab-ko-dic","directories":{},"_nodeVersion":"20.17.0","dependencies":{"pako":"^2.1.0","doublearray":"^0.0.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.1","vitest":"^1.1.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pako":"^2.0.4"},"_npmOperationalInternal":{"tmp":"tmp/kuromoji-ko_1.0.3_1768095367547_0.2892899569387337","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"kuromoji-ko","version":"1.0.4","keywords":["korean","morphological-analysis","tokenizer","nlp","mecab","mecab-ko","hangul","kuromoji","serverless","nextjs","vercel"],"author":{"name":"Richard Paynter"},"license":"Apache-2.0","_id":"kuromoji-ko@1.0.4","maintainers":[{"name":"elfsmelf","email":"elfsmelf@gmail.com"}],"homepage":"https://github.com/elfsmelf/kuromoji-ko#readme","bugs":{"url":"https://github.com/elfsmelf/kuromoji-ko/issues"},"dist":{"shasum":"a3ab355d4d724cac75deb340ba5a6913d5ef6fc3","tarball":"https://registry.npmjs.org/kuromoji-ko/-/kuromoji-ko-1.0.4.tgz","fileCount":18,"integrity":"sha512-MOwGP6X8oukTn8qqhg7nk0sBSTvXwFJmQawGGBLtPznNUPZTZxq4j/8Dv97rWlRoDa07Q2KIal7DUmsJrtJ4tQ==","signatures":[{"sig":"MEUCIQD2nw9fLcYQ09rfZ8hp6Io+WFY4tZTxP9HzKk1OuqLQxgIgH3waXQh10lTNKLS7miLpHt9K9UTS5TmU9PuQnwfJoVE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28570514},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"62807e368c1cd913612b68995dda8fd1df04c131","scripts":{"dev":"tsup src/index.ts --format esm --watch","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts --clean","typecheck":"tsc --noEmit","build:dict":"tsx scripts/build-dictionary.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"elfsmelf","email":"elfsmelf@gmail.com"},"repository":{"url":"git+https://github.com/elfsmelf/kuromoji-ko.git","type":"git"},"_npmVersion":"10.8.2","description":"Pure TypeScript Korean Morphological Analyzer - serverless compatible, based on kuromoji.js and mecab-ko-dic","directories":{},"_nodeVersion":"20.17.0","dependencies":{"pako":"^2.1.0","doublearray":"^0.0.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.1","vitest":"^1.1.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pako":"^2.0.4"},"_npmOperationalInternal":{"tmp":"tmp/kuromoji-ko_1.0.4_1768095769611_0.5285645318057663","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"kuromoji-ko","version":"1.0.5","keywords":["korean","morphological-analysis","tokenizer","nlp","mecab","mecab-ko","hangul","kuromoji","serverless","nextjs","vercel"],"author":{"name":"Richard Paynter"},"license":"Apache-2.0","_id":"kuromoji-ko@1.0.5","maintainers":[{"name":"elfsmelf","email":"elfsmelf@gmail.com"}],"homepage":"https://github.com/elfsmelf/kuromoji-ko#readme","bugs":{"url":"https://github.com/elfsmelf/kuromoji-ko/issues"},"dist":{"shasum":"aa5f15c00dbf014a21846ca9b22cb800766d253d","tarball":"https://registry.npmjs.org/kuromoji-ko/-/kuromoji-ko-1.0.5.tgz","fileCount":18,"integrity":"sha512-RhXybMscwtP4hdeFl29feEBFE8A1MJW5X1DRmr/b9Bt0E165jqrpgpZW3meC32CXtxvpAPVlrFmGQ14v0rdlgw==","signatures":[{"sig":"MEUCIQDvHBPUngJEE/SFpZeYJGXUQOn7/oNJpRFHQMIS04D4TgIgLxKKFDS+XC2zL+3jUY/J44TVAvTdYKNZw5xzGXrm7sw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28570924},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"9e2903fe530444855eec3aff2e7c493237896c74","scripts":{"dev":"tsup src/index.ts --format esm --watch","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts --clean","typecheck":"tsc --noEmit","build:dict":"tsx scripts/build-dictionary.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"elfsmelf","email":"elfsmelf@gmail.com"},"repository":{"url":"git+https://github.com/elfsmelf/kuromoji-ko.git","type":"git"},"_npmVersion":"10.8.2","description":"Pure TypeScript Korean Morphological Analyzer - serverless compatible, based on kuromoji.js and mecab-ko-dic","directories":{},"_nodeVersion":"20.17.0","dependencies":{"pako":"^2.1.0","doublearray":"^0.0.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.1","vitest":"^1.1.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pako":"^2.0.4"},"_npmOperationalInternal":{"tmp":"tmp/kuromoji-ko_1.0.5_1768549961422_0.39963140475892245","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"kuromoji-ko","version":"1.0.6","keywords":["korean","morphological-analysis","tokenizer","nlp","mecab","mecab-ko","hangul","kuromoji","serverless","nextjs","vercel"],"author":{"name":"Richard Paynter"},"license":"Apache-2.0","_id":"kuromoji-ko@1.0.6","maintainers":[{"name":"elfsmelf","email":"elfsmelf@gmail.com"}],"homepage":"https://github.com/elfsmelf/kuromoji-ko#readme","bugs":{"url":"https://github.com/elfsmelf/kuromoji-ko/issues"},"dist":{"shasum":"8ba3587374e872a26039f1c0b772123db0ddfe8d","tarball":"https://registry.npmjs.org/kuromoji-ko/-/kuromoji-ko-1.0.6.tgz","fileCount":18,"integrity":"sha512-wAVysirJbN6KolxBCwjOztsfzyUFWsrb/odu+9Kyhy4JSCD1snLwhhdLy6BQEMgxZgmAXYMZT+8mxoU1rxc1fA==","signatures":[{"sig":"MEUCIGalyAZmCSArKh9+eDT1z6Yzsoqx8iyNpTIFbVIxrdc1AiEAkAWkyjXG52r5ZWjY4HqkL7L8NGWje7hdrGYMDLc1k/U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27663407},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"92e99f9382a66cee463cd4c59982ce4fe3f5790c","scripts":{"dev":"tsup src/index.ts --format esm --watch","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts --clean","typecheck":"tsc --noEmit","build:dict":"tsx scripts/build-dictionary.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"elfsmelf","email":"elfsmelf@gmail.com"},"repository":{"url":"git+https://github.com/elfsmelf/kuromoji-ko.git","type":"git"},"_npmVersion":"10.8.2","description":"Pure TypeScript Korean Morphological Analyzer - serverless compatible, based on kuromoji.js and mecab-ko-dic","directories":{},"_nodeVersion":"20.17.0","dependencies":{"pako":"^2.1.0","doublearray":"^0.0.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.1","vitest":"^1.1.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pako":"^2.0.4"},"_npmOperationalInternal":{"tmp":"tmp/kuromoji-ko_1.0.6_1768552155011_0.9437469783556496","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"kuromoji-ko","version":"1.0.7","keywords":["korean","morphological-analysis","tokenizer","nlp","mecab","mecab-ko","hangul","kuromoji","serverless","nextjs","vercel"],"author":{"name":"Richard Paynter"},"license":"Apache-2.0","_id":"kuromoji-ko@1.0.7","maintainers":[{"name":"elfsmelf","email":"elfsmelf@gmail.com"}],"homepage":"https://github.com/elfsmelf/kuromoji-ko#readme","bugs":{"url":"https://github.com/elfsmelf/kuromoji-ko/issues"},"dist":{"shasum":"cc2a9e20b8e5c7d0e6e4a069ebf2784aa6dde00d","tarball":"https://registry.npmjs.org/kuromoji-ko/-/kuromoji-ko-1.0.7.tgz","fileCount":18,"integrity":"sha512-38jFeHQXmPawAsz3lJSgUSXprd2zQo3AqKMHq/lVqergC/eFPQ/OHrfiAeBXWCd4h46aSNKyAz1n2vVvcQ3NFQ==","signatures":[{"sig":"MEQCIFQ9hW/hbWfeWnF0eKRuZIlua8x1Cy6RL+YtWE/w4tunAiA7ovu8qrAHa7xrB8guB3rnRDC3t9dIL6TYa8YwnGYoXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28570924},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"f0f98476ac0eb65eccceafe2f86d7f6cabc3a0bb","scripts":{"dev":"tsup src/index.ts --format esm --watch","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts --clean","typecheck":"tsc --noEmit","build:dict":"tsx scripts/build-dictionary.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"elfsmelf","email":"elfsmelf@gmail.com"},"repository":{"url":"git+https://github.com/elfsmelf/kuromoji-ko.git","type":"git"},"_npmVersion":"10.8.2","description":"Pure TypeScript Korean Morphological Analyzer - serverless compatible, based on kuromoji.js and mecab-ko-dic","directories":{},"_nodeVersion":"20.17.0","dependencies":{"pako":"^2.1.0","doublearray":"^0.0.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.1","vitest":"^1.1.0","typescript":"^5.3.0","@types/node":"^20.10.0","@types/pako":"^2.0.4"},"_npmOperationalInternal":{"tmp":"tmp/kuromoji-ko_1.0.7_1768567428429_0.3635813696516237","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"kuromoji-ko","version":"1.0.8","description":"Pure TypeScript Korean Morphological Analyzer - serverless compatible, based on kuromoji.js and mecab-ko-dic","main":"dist/index.cjs","module":"dist/index.js","types":"dist/index.d.ts","type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"build":"tsup src/index.ts --format cjs,esm --dts --clean","build:dict":"tsx scripts/build-dictionary.ts","dev":"tsup src/index.ts --format esm --watch","test":"vitest","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"keywords":["korean","morphological-analysis","tokenizer","nlp","mecab","mecab-ko","hangul","kuromoji","serverless","nextjs","vercel"],"author":{"name":"Richard Paynter"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/elfsmelf/kuromoji-ko.git"},"bugs":{"url":"https://github.com/elfsmelf/kuromoji-ko/issues"},"homepage":"https://github.com/elfsmelf/kuromoji-ko#readme","devDependencies":{"@types/node":"^20.10.0","@types/pako":"^2.0.4","tsup":"^8.0.1","tsx":"^4.7.0","typescript":"^5.3.0","vitest":"^1.1.0"},"dependencies":{"doublearray":"^0.0.2","pako":"^2.1.0"},"_id":"kuromoji-ko@1.0.8","gitHead":"b64bbe6fcaa53bdfad95948c08c8fafa4ecf798f","_nodeVersion":"20.17.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-w2QP8rCMsE7yGJkQiY7LHhlhARspO42nSEroMtyTPzL7su+qfNQLVu5VQntx1mN9K8ta/5Qd+n63TiBHI57YTw==","shasum":"f4860c994b923295aee70fde66df17fb88111895","tarball":"https://registry.npmjs.org/kuromoji-ko/-/kuromoji-ko-1.0.8.tgz","fileCount":18,"unpackedSize":28582312,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC1psSSw7v0uuxDiMCvv29z6SnSs2bhmmH/AFggJ/MNzgIhAJWctV7RmNhz/j9tx8EsXPFHg2NmpmdZyH1lKAw72Lti"}]},"_npmUser":{"name":"elfsmelf","email":"elfsmelf@gmail.com"},"directories":{},"maintainers":[{"name":"elfsmelf","email":"elfsmelf@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/kuromoji-ko_1.0.8_1768640315456_0.7988492589721929"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-10T23:59:22.176Z","modified":"2026-01-17T08:58:36.388Z","1.0.0":"2026-01-10T23:59:23.021Z","1.0.1":"2026-01-11T00:01:49.281Z","1.0.2":"2026-01-11T01:27:51.910Z","1.0.3":"2026-01-11T01:36:08.385Z","1.0.4":"2026-01-11T01:42:50.458Z","1.0.5":"2026-01-16T07:52:42.337Z","1.0.6":"2026-01-16T08:29:15.825Z","1.0.7":"2026-01-16T12:43:49.235Z","1.0.8":"2026-01-17T08:58:36.278Z"},"bugs":{"url":"https://github.com/elfsmelf/kuromoji-ko/issues"},"author":{"name":"Richard Paynter"},"license":"Apache-2.0","homepage":"https://github.com/elfsmelf/kuromoji-ko#readme","keywords":["korean","morphological-analysis","tokenizer","nlp","mecab","mecab-ko","hangul","kuromoji","serverless","nextjs","vercel"],"repository":{"type":"git","url":"git+https://github.com/elfsmelf/kuromoji-ko.git"},"description":"Pure TypeScript Korean Morphological Analyzer - serverless compatible, based on kuromoji.js and mecab-ko-dic","maintainers":[{"name":"elfsmelf","email":"elfsmelf@gmail.com"}],"readme":"# kuromoji-ko\n\n**Pure JavaScript Korean Morphological Analyzer**\n\nA port of [kuromoji.js](https://github.com/takuyaa/kuromoji.js) adapted for Korean language processing using [mecab-ko-dic](https://bitbucket.org/eunjeon/mecab-ko-dic).\n\n## Features\n\n- 🚀 Pure JavaScript - runs in Node.js, browsers, and serverless (Vercel, Cloudflare Workers)\n- 📦 No native dependencies - no compilation required\n- 🇰🇷 Korean-optimized - uses mecab-ko-dic with Sejong tagset\n- ⚡ Viterbi algorithm - accurate morphological analysis\n- 🔧 Simple API - tokenize Korean text in a few lines\n\n## Installation\n\n```bash\nnpm install kuromoji-ko\n```\n\n## Quick Start\n\n### napi-mecab Compatible API (Recommended)\n\n```javascript\nimport { MeCab } from 'kuromoji-ko';\n\nconst mecab = await MeCab.create({ engine: 'ko', dictPath: './dict' });\nconst tokens = mecab.parse('안녕하세요');\n\nfor (const token of tokens) {\n  console.log(token.surface, token.pos, token.lemma);\n}\n// 안녕 ['NNG'] 안녕\n// 하 ['XSV'] 하다\n// 세요 ['EF'] 세요\n```\n\n### Classic API\n\n```javascript\nimport kuromoji from 'kuromoji-ko';\n\nconst tokenizer = await kuromoji.builder({\n  dicPath: './dict'\n}).build();\n\nconst tokens = tokenizer.tokenize('안녕하세요');\n\nfor (const token of tokens) {\n  console.log(token.surface_form, token.pos, token.posDescription);\n}\n// 안녕 NNG 일반 명사\n// 하 XSV 동사 파생 접미사\n// 세요 EF 종결 어미\n```\n\n## Building the Dictionary\n\nBefore using kuromoji-ko, you need to build the dictionary files from mecab-ko-dic:\n\n```bash\n# Download mecab-ko-dic\ngit clone https://bitbucket.org/eunjeon/mecab-ko-dic.git\n\n# Build dictionary\nnpm run build:dict -- ./mecab-ko-dic ./dict\n```\n\nThis creates binary dictionary files in the `./dict` directory.\n\n## API\n\n### MeCab API (napi-mecab compatible)\n\n#### `MeCab.create(options)`\n\nCreate a MeCab instance asynchronously.\n\n```javascript\nimport { MeCab } from 'kuromoji-ko';\n\nconst mecab = await MeCab.create({\n  engine: 'ko',      // Only 'ko' is supported\n  dictPath: './dict' // Path to dictionary directory\n});\n```\n\n#### `mecab.parse(text)`\n\nParse text into an array of Token objects.\n\n```javascript\nconst tokens = mecab.parse('아버지가방에들어가신다');\ntokens.forEach(t => console.log(t.surface, t.pos));\n```\n\n### Token Object (napi-mecab compatible)\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `surface` | `string` | How the token looks in the input text |\n| `pos` | `string[]` | Parts of speech as array (split by \"+\") |\n| `lemma` | `string` | Dictionary headword (adds \"다\" for verbs) |\n| `pronunciation` | `string \\| null` | How the token is pronounced |\n| `hasBatchim` | `boolean \\| null` | Whether token has final consonant (받침) |\n| `hasJongseong` | `boolean \\| null` | Alias for hasBatchim |\n| `semanticClass` | `string \\| null` | Semantic word class or category |\n| `type` | `string \\| null` | Token type (Inflect/Compound/Preanalysis) |\n| `expression` | `ExpressionToken[] \\| null` | Breakdown of compound/inflected tokens |\n| `features` | `string` | Raw features string (comma-separated) |\n| `raw` | `string` | Raw MeCab output format (surface\\tfeatures) |\n\n### ExpressionToken Object\n\nFor compound or inflected words, `expression` returns an array of ExpressionToken:\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `morpheme` | `string` | The normalized token |\n| `pos` | `string` | Part of speech |\n| `lemma` | `string` | Dictionary form (adds \"다\" for verbs) |\n| `semanticClass` | `string \\| null` | Semantic category |\n\n---\n\n### Classic API\n\n#### `kuromoji.builder(options)`\n\nCreate a tokenizer builder.\n\n```javascript\nconst builder = kuromoji.builder({\n  dicPath: './dict',      // Path to dictionary directory\n  loader: customLoader    // Optional custom file loader\n});\n```\n\n### `builder.build()`\n\nBuild and return the tokenizer (async).\n\n```javascript\nconst tokenizer = await builder.build();\n```\n\n### `tokenizer.tokenize(text)`\n\nTokenize Korean text into morphemes.\n\n```javascript\nconst tokens = tokenizer.tokenize('한국어 형태소 분석');\n```\n\n### `tokenizer.wakati(text)`\n\nGet just the surface forms as an array.\n\n```javascript\nconst words = tokenizer.wakati('한국어 형태소 분석');\n// ['한국어', '형태소', '분석']\n```\n\n### `tokenizer.wakatiString(text)`\n\nGet space-separated surface forms.\n\n```javascript\nconst str = tokenizer.wakatiString('한국어 형태소 분석');\n// '한국어 형태소 분석'\n```\n\n## KoreanToken Object (Classic API)\n\nEach token from `tokenizer.tokenize()` has the following properties:\n\n| Property | Description | Example |\n|----------|-------------|---------|\n| `surface_form` | Surface text | `'한국어'` |\n| `word_position` | Position in text (1-indexed) | `1` |\n| `word_id` | Dictionary word ID | `12345` |\n| `word_type` | KNOWN or UNKNOWN | `'KNOWN'` |\n| `pos` | POS tag (Sejong tagset) | `'NNG'` |\n| `posDescription` | POS description | `'일반 명사'` |\n| `semantic_class` | Semantic category | `'*'` |\n| `has_final_consonant` | Ends with 받침? (T/F/*) | `'F'` |\n| `reading` | Pronunciation | `'한국어'` |\n| `type` | Inflect/Compound/Preanalysis | `'Compound'` |\n| `first_pos` | First POS (compounds) | `'NNG'` |\n| `last_pos` | Last POS (compounds) | `'NNG'` |\n| `expression` | Decomposition | `'한국/NNG/*+어/NNG/*'` |\n\n## Korean POS Tags (Sejong Tagset)\n\n### 체언 (Substantives)\n| Tag | Description |\n|-----|-------------|\n| NNG | 일반 명사 (General noun) |\n| NNP | 고유 명사 (Proper noun) |\n| NNB | 의존 명사 (Dependent noun) |\n| NR | 수사 (Numeral) |\n| NP | 대명사 (Pronoun) |\n\n### 용언 (Predicates)\n| Tag | Description |\n|-----|-------------|\n| VV | 동사 (Verb) |\n| VA | 형용사 (Adjective) |\n| VX | 보조 용언 (Auxiliary) |\n| VCP | 긍정 지정사 (Copula 이다) |\n| VCN | 부정 지정사 (Negative 아니다) |\n\n### 조사 (Particles)\n| Tag | Description |\n|-----|-------------|\n| JKS | 주격 조사 (Subject) |\n| JKO | 목적격 조사 (Object) |\n| JKB | 부사격 조사 (Adverbial) |\n| JX | 보조사 (Auxiliary particle) |\n\n### 어미 (Endings)\n| Tag | Description |\n|-----|-------------|\n| EP | 선어말 어미 (Pre-final) |\n| EF | 종결 어미 (Final) |\n| EC | 연결 어미 (Connective) |\n| ETN | 명사형 전성 어미 (Nominalizing) |\n| ETM | 관형형 전성 어미 (Adnominalizing) |\n\n### 기타 (Others)\n| Tag | Description |\n|-----|-------------|\n| SL | 외국어 (Foreign) |\n| SH | 한자 (Chinese characters) |\n| SN | 숫자 (Numbers) |\n| SW | 기타 기호 (Symbols) |\n\n## Browser Usage\n\n```html\n<script type=\"module\">\nimport kuromoji from 'https://cdn.jsdelivr.net/npm/kuromoji-ko/dist/index.mjs';\n\nconst tokenizer = await kuromoji.builder({\n  dicPath: 'https://cdn.jsdelivr.net/npm/kuromoji-ko/dict/'\n}).build();\n\nconsole.log(tokenizer.tokenize('안녕하세요'));\n</script>\n```\n\n## Serverless (Vercel) Usage\n\nkuromoji-ko runs without native dependencies, making it perfect for serverless:\n\n```javascript\n// api/tokenize.js\nimport kuromoji from 'kuromoji-ko';\n\nlet tokenizerPromise = null;\n\nfunction getTokenizer() {\n  if (!tokenizerPromise) {\n    tokenizerPromise = kuromoji.builder({\n      dicPath: './dict'\n    }).build();\n  }\n  return tokenizerPromise;\n}\n\nexport default async function handler(req, res) {\n  const tokenizer = await getTokenizer();\n  const tokens = tokenizer.tokenize(req.body.text);\n  res.json(tokens);\n}\n```\n\n## How It Works\n\nkuromoji-ko implements morphological analysis using:\n\n1. **Double-Array TRIE** - Efficient dictionary lookup for surface forms\n2. **Viterbi Algorithm** - Dynamic programming to find the optimal segmentation\n3. **Connection Costs** - Bigram model for morpheme transitions\n4. **Unknown Word Handling** - Character-type based POS estimation\n\n## Credits\n\n- [kuromoji.js](https://github.com/takuyaa/kuromoji.js) - Original Japanese implementation\n- [mecab-ko-dic](https://bitbucket.org/eunjeon/mecab-ko-dic) - Korean dictionary\n- [MeCab](https://taku910.github.io/mecab/) - Original C++ morphological analyzer\n\n## License\n\nApache-2.0\n\nDictionary files (mecab-ko-dic) are also Apache-2.0 licensed.\n","readmeFilename":"README.md"}