{"_id":"partial-json","_rev":"55-38e44a2a8dbbcd55bf801a389fcf17b2","name":"partial-json","dist-tags":{"latest":"0.1.7"},"versions":{"0.0.4":{"name":"partial-json","version":"0.0.4","description":"Parse partial JSON generated by LLM","keywords":["JSON","parser","LLM","nlp"],"homepage":"https://promplate.dev","repository":{"type":"git","url":"git+https://github.com/promplate/partial-json-parser-js.git"},"license":"MIT","author":{"name":"Muspi Merol","email":"me@promplate.dev"},"type":"module","main":"./dist/index.cjs","module":"./dist/index.mjs","scripts":{"build":"npm run build:cjs & npm run build:esm","build:cjs":"esbuild src/index.js --sourcemap=external --bundle --format=cjs --outfile=dist/index.cjs","build:esm":"esbuild src/index.js --sourcemap=external --bundle --format=esm --outfile=dist/index.mjs","coverage":"vitest run --coverage","test":"vitest","test:ui":"vitest --ui"},"devDependencies":{"@vitest/coverage-v8":"^0.34.6","@vitest/ui":"^0.34.6","esbuild":"^0.19.5","vitest":"^0.34.6"},"_id":"partial-json@0.0.4","gitHead":"0d5c50fb3f8497f61af19fec19ace67207ec11b6","bugs":{"url":"https://github.com/promplate/partial-json-parser-js/issues"},"_nodeVersion":"20.6.1","_npmVersion":"10.2.0","dist":{"integrity":"sha512-q4HCbfQdbhaxVyU+Qd53+2UTZBb1rSYoinVflCkk4hYxigo9D514ImLHO6VXCfhXutBmVShGzbEKNrZgGohpQw==","shasum":"9733d5e4c60092c758264ccdf202322d23316c26","tarball":"https://registry.npmjs.org/partial-json/-/partial-json-0.0.4.tgz","fileCount":7,"unpackedSize":40598,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDYooZqj8lsYMvBt1by9XqygKbnzVa/ORtvXDoTFw5FmAiBNk+Pn5Ta8EJn58ZY3Y+QRb4uhylP7/E4eGhLW1chxkw=="}]},"_npmUser":{"name":"muspi-merol","email":"admin@muspimerol.site"},"directories":{},"maintainers":[{"name":"muspi-merol","email":"admin@muspimerol.site"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/partial-json_0.0.4_1697660256681_0.35085667707336876"},"_hasShrinkwrap":false},"0.1.1":{"name":"partial-json","version":"0.1.1","description":"Parse partial JSON generated by LLM","keywords":["JSON","parser","LLM","nlp"],"homepage":"https://promplate.dev","repository":{"type":"git","url":"git+https://github.com/promplate/partial-json-parser-js.git"},"license":"MIT","author":{"name":"Muspi Merol","email":"me@promplate.dev"},"type":"module","main":"./dist/index.cjs","module":"./dist/index.mjs","devDependencies":{"@vitest/coverage-v8":"^0.34.6","@vitest/ui":"^0.34.6","esbuild":"^0.19.5","vitest":"^0.34.6"},"scripts":{"build":"npm run build:cjs & npm run build:esm","build:cjs":"esbuild src/index.js --sourcemap=external --minify --bundle --format=cjs --outfile=dist/index.cjs","build:esm":"esbuild src/index.js --sourcemap=external --minify --bundle --format=esm --outfile=dist/index.mjs","coverage":"vitest run --coverage","test":"vitest","test:ui":"vitest --ui"},"bugs":{"url":"https://github.com/promplate/partial-json-parser-js/issues"},"_id":"partial-json@0.1.1","_integrity":"sha512-R2ehZsQXOCwHIdRciNdZ+8aREOd2JY7k5UEYO5CtuxFUAd2HNLQljooadl0NTWNPldl55Bz0Evw9nA11zzW+SQ==","_resolved":"C:\\Users\\17979\\AppData\\Local\\Temp\\717a7ed2e9942d9dec0665dfdbc82405\\partial-json-0.1.1.tgz","_from":"file:partial-json-0.1.1.tgz","_nodeVersion":"20.6.1","_npmVersion":"10.2.0","dist":{"integrity":"sha512-R2ehZsQXOCwHIdRciNdZ+8aREOd2JY7k5UEYO5CtuxFUAd2HNLQljooadl0NTWNPldl55Bz0Evw9nA11zzW+SQ==","shasum":"77ed7a05e1a7617b307a55011b74224b84f21b28","tarball":"https://registry.npmjs.org/partial-json/-/partial-json-0.1.1.tgz","fileCount":10,"unpackedSize":48405,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHxT0yi1Mh4iR/INTUI5nd5kgId3bc3NfojSdWkydvPMAiEAsHCJTIlbeT+rwji9eaytydqvYDyNjau0Q/pxRt3FS9o="}]},"_npmUser":{"name":"muspi-merol","email":"admin@muspimerol.site"},"directories":{},"maintainers":[{"name":"muspi-merol","email":"admin@muspimerol.site"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/partial-json_0.1.1_1697666053994_0.12991744850504583"},"_hasShrinkwrap":false},"0.1.2":{"name":"partial-json","version":"0.1.2","description":"Parse partial JSON generated by LLM","keywords":["JSON","parser","LLM","nlp"],"homepage":"https://promplate.dev","repository":{"type":"git","url":"git+https://github.com/promplate/partial-json-parser-js.git"},"license":"MIT","author":{"name":"Muspi Merol","email":"me@promplate.dev"},"type":"module","main":"./dist/index.cjs","module":"./dist/index.mjs","types":"dist/index.d.ts","devDependencies":{"@vitest/coverage-v8":"^0.34.6","@vitest/ui":"^0.34.6","esbuild":"^0.19.5","typescript":"^5.2.2","vitest":"^0.34.6"},"scripts":{"build":"tsc && (npm run build:cjs & npm run build:esm)","build:cjs":"esbuild src/index.ts --sourcemap=external --minify --bundle --format=cjs --outfile=dist/index.cjs","build:esm":"esbuild src/index.ts --sourcemap=external --minify --bundle --format=esm --outfile=dist/index.mjs","coverage":"vitest run --coverage","test":"vitest","test:ui":"vitest --ui"},"bugs":{"url":"https://github.com/promplate/partial-json-parser-js/issues"},"_id":"partial-json@0.1.2","_integrity":"sha512-pqpvheQZcGniB0m4VTlLritHTetL4N710Ze726N0cePluOjbbnZDQleSrz+/pO3jgUlOz3I8djz2wJD5V8caOA==","_resolved":"C:\\Users\\17979\\AppData\\Local\\Temp\\b4462b929aab1241f02e1f28b07cb994\\partial-json-0.1.2.tgz","_from":"file:partial-json-0.1.2.tgz","_nodeVersion":"20.6.1","_npmVersion":"10.2.0","dist":{"integrity":"sha512-pqpvheQZcGniB0m4VTlLritHTetL4N710Ze726N0cePluOjbbnZDQleSrz+/pO3jgUlOz3I8djz2wJD5V8caOA==","shasum":"0abfe4cdfa00be071ce635279517cb3233108145","tarball":"https://registry.npmjs.org/partial-json/-/partial-json-0.1.2.tgz","fileCount":14,"unpackedSize":52979,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWJvlEydk9e1J98YMvuIaLFbuJqXeNE92nLPSg3dReRgIgT7ZtNpsdvNdrWotPJVy9/vIknl7yfdd/IJqoR8qwXhE="}]},"_npmUser":{"name":"muspi-merol","email":"admin@muspimerol.site"},"directories":{},"maintainers":[{"name":"muspi-merol","email":"admin@muspimerol.site"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/partial-json_0.1.2_1697670077801_0.5996764853461345"},"_hasShrinkwrap":false},"0.1.3":{"name":"partial-json","version":"0.1.3","description":"Parse partial JSON generated by LLM","keywords":["JSON","parser","LLM","nlp"],"homepage":"https://promplate.dev/partial-json-parser","repository":{"type":"git","url":"git+https://github.com/promplate/partial-json-parser-js.git"},"license":"MIT","author":{"name":"Muspi Merol","email":"me@promplate.dev"},"exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.cjs","types":"./dist/index.d.ts"}},"main":"./dist/index.cjs","module":"./dist/index.mjs","types":"dist/index.d.ts","scripts":{"build":"tsc && (npm run build:cjs & npm run build:esm)","build:cjs":"esbuild src/index.ts --sourcemap=external --minify --keep-names --bundle --format=cjs --outfile=dist/index.cjs","build:esm":"esbuild src/index.ts --sourcemap=external --minify --keep-names --bundle --format=esm --outfile=dist/index.mjs","coverage":"vitest run --coverage","test":"vitest","test:ui":"vitest --ui"},"devDependencies":{"@vitest/coverage-v8":"^0.34.6","@vitest/ui":"^0.34.6","esbuild":"^0.19.5","typescript":"^5.2.2","vitest":"^0.34.6"},"_id":"partial-json@0.1.3","gitHead":"af8b5884e1a5dc6b825351559ae71e822371a18c","bugs":{"url":"https://github.com/promplate/partial-json-parser-js/issues"},"_nodeVersion":"20.6.1","_npmVersion":"10.2.0","dist":{"integrity":"sha512-yGRvl5DjTb+tcCXIgzQWPcFrQpXMbnjnCylM05UlDSrvQLQOjjKR1q3sRX1aV0HvdLc8xOpsFkg8KVNwjDpPpQ==","shasum":"d817b0444bd37158e07192b49fe0e0b9e34f9c7c","tarball":"https://registry.npmjs.org/partial-json/-/partial-json-0.1.3.tgz","fileCount":13,"unpackedSize":50980,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQ/np2LXk4orMLsZUG5lfHcVHRGgEtMm2VkoqxMVCe0QIgVlTNiWwOKa+mP4XzJnQO8PjpwXpGOCN/DOea1TuKU4U="}]},"_npmUser":{"name":"muspi-merol","email":"admin@muspimerol.site"},"directories":{},"maintainers":[{"name":"muspi-merol","email":"admin@muspimerol.site"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/partial-json_0.1.3_1697715930986_0.2176288759271805"},"_hasShrinkwrap":false},"0.1.4":{"name":"partial-json","version":"0.1.4","description":"Parse partial JSON generated by LLM","keywords":["JSON","parser","LLM","nlp"],"homepage":"https://promplate.dev/partial-json-parser","repository":{"type":"git","url":"git+https://github.com/promplate/partial-json-parser-js.git"},"license":"MIT","author":{"name":"Muspi Merol","email":"me@promplate.dev"},"exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.cjs","types":"./dist/index.d.ts"}},"main":"./dist/index.cjs","module":"./dist/index.mjs","types":"dist/index.d.ts","devDependencies":{"@vitest/coverage-v8":"^0.34.6","@vitest/ui":"^0.34.6","esbuild":"^0.19.5","typescript":"^5.2.2","vitest":"^0.34.6"},"scripts":{"build":"tsc && (npm run build:cjs & npm run build:esm)","build:cjs":"esbuild src/index.ts --sourcemap=external --minify --keep-names --bundle --format=cjs --outfile=dist/index.cjs","build:esm":"esbuild src/index.ts --sourcemap=external --minify --keep-names --bundle --format=esm --outfile=dist/index.mjs","coverage":"vitest run --coverage","test":"vitest","test:ui":"vitest --ui"},"bugs":{"url":"https://github.com/promplate/partial-json-parser-js/issues"},"_id":"partial-json@0.1.4","_integrity":"sha512-UxDJGsUwQvrgzoI5cu8tu1UuCGVgr60UgEdnW2cF64LoUPXCQx2YhO02Busb2POnOTehaQ5QJfhQjHd46KSVHA==","_resolved":"C:\\Users\\17979\\AppData\\Local\\Temp\\14f85aca03d0bcc349b7d56111aecc27\\partial-json-0.1.4.tgz","_from":"file:partial-json-0.1.4.tgz","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-UxDJGsUwQvrgzoI5cu8tu1UuCGVgr60UgEdnW2cF64LoUPXCQx2YhO02Busb2POnOTehaQ5QJfhQjHd46KSVHA==","shasum":"9777b621cff47e29eaae5eb22021cb492c46e57b","tarball":"https://registry.npmjs.org/partial-json/-/partial-json-0.1.4.tgz","fileCount":7,"unpackedSize":39089,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDuCEchViOw6Pmlc8VCcK6peo5gk0/l6d1XWhmpskU9mgIhAIy0n85pybOiFAafTFp5ZxA2tMBzHzUXsrCm6QM69D3u"}]},"_npmUser":{"name":"muspi-merol","email":"admin@muspimerol.site"},"directories":{},"maintainers":[{"name":"muspi-merol","email":"admin@muspimerol.site"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/partial-json_0.1.4_1706596671784_0.015154320326050685"},"_hasShrinkwrap":false},"0.1.5":{"name":"partial-json","version":"0.1.5","description":"Parse partial JSON generated by LLM","keywords":["JSON","parser","LLM","nlp"],"homepage":"https://promplate.dev/partial-json-parser","repository":{"type":"git","url":"git+https://github.com/promplate/partial-json-parser-js.git"},"license":"MIT","author":{"name":"Muspi Merol","email":"me@promplate.dev"},"exports":{".":{"default":"./dist/index.js","types":"./dist/index.d.ts"},"./options":{"default":"./dist/options.js","types":"./dist/options.d.ts"}},"main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@vitest/coverage-istanbul":"^1.2.2","@vitest/ui":"^1.2.2","typescript":"^5.3.3","vitest":"^1.2.2"},"scripts":{"build":"tsc","coverage":"vitest run --coverage","test":"vitest","test:ui":"vitest --ui"},"bugs":{"url":"https://github.com/promplate/partial-json-parser-js/issues"},"_id":"partial-json@0.1.5","_integrity":"sha512-WhOTXTAWXiHJXnWV1m+goIDHSEy9ybu2SP++6vrRxtrvg+SLP3qC0AeMYdCrP7jHQLyvkCdVN5iNNNUypdSMbw==","_resolved":"C:\\Users\\17979\\AppData\\Local\\Temp\\6d766d621df58c0c04c902e5ab41503a\\partial-json-0.1.5.tgz","_from":"file:partial-json-0.1.5.tgz","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-WhOTXTAWXiHJXnWV1m+goIDHSEy9ybu2SP++6vrRxtrvg+SLP3qC0AeMYdCrP7jHQLyvkCdVN5iNNNUypdSMbw==","shasum":"741a8db1016d1a848663a4940f1461cc8c38cb51","tarball":"https://registry.npmjs.org/partial-json/-/partial-json-0.1.5.tgz","fileCount":9,"unpackedSize":18294,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRtHAPdy2EmPzSkNthMNmqsudyJ1ZSiLCvfMxO6E0cIQIhAN80zcFhiQ7BqsLG4QJYxat6qk2Xzu8Pt7fRhBY4VUNM"}]},"_npmUser":{"name":"muspi-merol","email":"admin@muspimerol.site"},"directories":{},"maintainers":[{"name":"muspi-merol","email":"admin@muspimerol.site"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/partial-json_0.1.5_1707302332391_0.8550366159989431"},"_hasShrinkwrap":false},"0.1.6":{"name":"partial-json","version":"0.1.6","description":"Parse partial JSON generated by LLM","keywords":["JSON","parser","LLM","nlp"],"homepage":"https://promplate.dev/partial-json-parser","repository":{"type":"git","url":"git+https://github.com/promplate/partial-json-parser-js.git"},"license":"MIT","author":{"name":"Muspi Merol","email":"me@promplate.dev"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./options":{"types":"./dist/options.d.ts","default":"./dist/options.js"}},"main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","devDependencies":{"@vitest/coverage-istanbul":"^1.2.2","@vitest/ui":"^1.2.2","typescript":"^5.3.3","vitest":"^1.2.2"},"scripts":{"build":"tsc","coverage":"vitest run --coverage","test":"vitest","test:ui":"vitest --ui"},"bugs":{"url":"https://github.com/promplate/partial-json-parser-js/issues"},"_id":"partial-json@0.1.6","_integrity":"sha512-pvJPiUMwQ0eWGpxVNJecOVV2eFYlMEKCfo+FXtEjN9Xfw5aIQ2q0dmKpqszw7QA86lMV6oIFxsmxeVHDlL4p6Q==","_resolved":"C:\\Users\\17979\\AppData\\Local\\Temp\\5977faa8e5bf41997dd0afa17ff4ab7d\\partial-json-0.1.6.tgz","_from":"file:partial-json-0.1.6.tgz","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-pvJPiUMwQ0eWGpxVNJecOVV2eFYlMEKCfo+FXtEjN9Xfw5aIQ2q0dmKpqszw7QA86lMV6oIFxsmxeVHDlL4p6Q==","shasum":"6b950195352f166842c7a21c09aa577f9887c5de","tarball":"https://registry.npmjs.org/partial-json/-/partial-json-0.1.6.tgz","fileCount":9,"unpackedSize":18294,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGLv7+YdQc5Aqjn3z+ejfHRQ8pC6Dnm8zhzj02l5Udx8AiEAjgfOaSGD9DLtt92MATzYAT5eafQA4pgLLshpexyjOIs="}]},"_npmUser":{"name":"muspi-merol","email":"admin@muspimerol.site"},"directories":{},"maintainers":[{"name":"muspi-merol","email":"admin@muspimerol.site"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/partial-json_0.1.6_1707523425453_0.9938015741552257"},"_hasShrinkwrap":false},"0.1.7":{"name":"partial-json","version":"0.1.7","description":"Parse partial JSON generated by LLM","keywords":["JSON","parser","LLM","nlp"],"homepage":"https://promplate.dev/partial-json-parser","repository":{"type":"git","url":"git+https://github.com/promplate/partial-json-parser-js.git"},"license":"MIT","author":{"name":"Muspi Merol","email":"me@promplate.dev"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./options":{"types":"./dist/options.d.ts","default":"./dist/options.js"}},"main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","coverage":"vitest run --coverage","test":"vitest","test:ui":"vitest --ui"},"devDependencies":{"@vitest/coverage-istanbul":"^1.2.2","@vitest/ui":"^1.2.2","typescript":"^5.3.3","vitest":"^1.2.2"},"_id":"partial-json@0.1.7","gitHead":"b65f82c541f5dd7dc17e0764db78fca6a8d2a159","bugs":{"url":"https://github.com/promplate/partial-json-parser-js/issues"},"_nodeVersion":"22.1.0","_npmVersion":"10.7.0","dist":{"integrity":"sha512-Njv/59hHaokb/hRUjce3Hdv12wd60MtM9Z5Olmn+nehe0QDAsRtRbJPvJ0Z91TusF0SuZRIvnM+S4l6EIP8leA==","shasum":"b735a89edb3e25f231a3c4caeaae71dc9f578605","tarball":"https://registry.npmjs.org/partial-json/-/partial-json-0.1.7.tgz","fileCount":9,"unpackedSize":21852,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/partial-json@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGB6xqwrymhBW9CXoy6pqOexTbYDEzp6Emsq7PE1EQ56AiEA28wAN4opsEbztRaVFRYLJsqcK+VTJNg5hbdMKMX3Aak="}]},"_npmUser":{"name":"muspi-merol","email":"admin@muspimerol.site"},"directories":{},"maintainers":[{"name":"muspi-merol","email":"admin@muspimerol.site"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/partial-json_0.1.7_1715689084691_0.030576249642107145"},"_hasShrinkwrap":false}},"time":{"created":"2023-10-18T19:09:28.596Z","0.0.1":"2023-10-18T19:09:28.766Z","modified":"2024-05-14T12:18:05.234Z","0.0.2":"2023-10-18T19:15:21.271Z","0.0.3":"2023-10-18T19:41:48.845Z","0.0.4-alpha-1":"2023-10-18T19:55:32.475Z","0.0.4-alpha-2":"2023-10-18T19:58:24.853Z","0.0.4-alpha-3":"2023-10-18T19:59:56.156Z","0.0.4-alpha-4":"2023-10-18T20:08:58.153Z","0.0.4":"2023-10-18T20:17:36.893Z","0.1.0":"2023-10-18T20:59:51.965Z","0.1.1":"2023-10-18T21:54:14.261Z","0.1.2-alpha-1":"2023-10-18T22:52:10.035Z","0.1.2-alpha-2":"2023-10-18T22:57:29.299Z","0.1.2":"2023-10-18T23:01:18.129Z","0.1.2-fix-1":"2023-10-19T10:10:16.254Z","0.1.2-fix-2":"2023-10-19T10:30:39.047Z","0.1.2-fix-3":"2023-10-19T10:39:21.641Z","0.1.2-fix-4":"2023-10-19T10:41:29.129Z","0.1.2-fix-5":"2023-10-19T11:25:34.948Z","0.1.2-fix-6":"2023-10-19T11:35:45.077Z","0.1.3":"2023-10-19T11:45:31.252Z","0.1.4":"2024-01-30T06:37:51.960Z","0.1.5-a1":"2024-02-07T09:35:25.490Z","0.1.5-a2":"2024-02-07T09:46:36.347Z","0.1.5-a3":"2024-02-07T09:50:20.907Z","0.1.5-a4":"2024-02-07T09:52:09.453Z","0.1.5-a5":"2024-02-07T10:24:23.290Z","0.1.5-a6":"2024-02-07T10:30:01.417Z","0.1.5-a7":"2024-02-07T10:30:58.188Z","0.1.5-a8":"2024-02-07T10:31:47.502Z","0.1.5":"2024-02-07T10:38:52.549Z","0.1.6":"2024-02-10T00:03:45.678Z","0.1.7":"2024-05-14T12:18:04.850Z"},"maintainers":[{"name":"muspi-merol","email":"admin@muspimerol.site"}],"description":"Parse partial JSON generated by LLM","homepage":"https://promplate.dev/partial-json-parser","keywords":["JSON","parser","LLM","nlp"],"repository":{"type":"git","url":"git+https://github.com/promplate/partial-json-parser-js.git"},"author":{"name":"Muspi Merol","email":"me@promplate.dev"},"bugs":{"url":"https://github.com/promplate/partial-json-parser-js/issues"},"license":"MIT","readme":"# Partial JSON Parser\n\nSometimes we need **LLM (Large Language Models)** to produce **structural information** instead of natural language. The easiest way is to use JSON.\n\nBut before receiving the last token of response, the JSON is broken, which means you can't use `JSON.parse` to decode it. But we still want to stream the data to the user.\n\nHere comes `partial-json`, a lightweight and customizable library for parsing partial JSON strings. Here is a [demo](https://promplate.dev/partial-json-parser).\n\n(Note that there is [a Python implementation](https://github.com/promplate/partial-json-parser) too)\n\n## Installation\n\n```sh\nnpm i partial-json # or pnpm / bun / yarn\n```\n\n`partial-json` is implemented purely in JavaScript, and have both `commonjs` and `esm` builds.\n\n## Usage\n\n### Importing the library\n\nYou can import the `parse` function and the `Allow` object from the library like this:\n\n```js\nimport { parse, Allow } from \"partial-json\";\n```\n\nThe `Allow` object is just an Enum for options. It determines what types can be partial. types not included in `allow` only appears after its completion can be ensured.\n\n### Parsing complete / partial JSON strings\n\nThe `parse` function works just like the built-in `JSON.parse` when parsing a complete JSON string:\n\n```js\nlet result = parse('{\"key\":\"value\"}');\nconsole.log(result); // Outputs: { key: 'value' }\n```\n\nYou can parse a partial JSON string by passing an additional parameter to the `parse` function. This parameter is a **bitwise OR** of the constants from the `Allow` object:\n\n(Note that you can directly import the constants you need from `partial-json`)\n\n```js\nimport { parse, STR, OBJ } from \"partial-json\";\n\nresult = parse('{\"key\": \"v', STR | OBJ);\nconsole.log(result); // Outputs: { key: 'v' }\n```\n\nIn this example, `Allow.STR` tells the parser that it's okay if a string is incomplete, and `Allow.OBJ` tells the parser so as an object. The parser then try to return as much data as it can.\n\nIf you don't allow partial strings, then it will not add `\"key\"` to the object because `\"v` is not close:\n\n```js\nresult = parse('{\"key\": \"v', OBJ);\nconsole.log(result); // Outputs: {}\n\nresult = parse('{\"key\": \"value\"', OBJ);\nconsole.log(result); // Outputs: { key: 'value' }\n```\n\nSimilarity, you can parse partial arrays or even partial special values if you allow it:\n\n(Note that `allow` defaults to `Allow.ALL`)\n\n```js\nresult = parse('[ {\"key1\": \"value1\", \"key2\": [ \"value2');\nconsole.log(result); // Outputs: [ { key1: 'value1', key2: [ 'value2' ] } ]\n\nresult = parse(\"-Inf\");\nconsole.log(result); // Outputs: -Infinity\n```\n\n### Handling malformed JSON\n\nIf the JSON string is malformed, the `parse` function will throw an error:\n\n```js\nparse(\"wrong\"); // MalformedJSON [Error]: SyntaxError: Unexpected token 'w', \"wrong\" is not valid JSON at position 0\n```\n\n## API Reference\n\n### parse(jsonString, [allowPartial])\n\n- `jsonString` ``: The JSON string to parse.\n- `allowPartial` ``: Specify what kind of partialness is allowed during JSON parsing (default: `Allow.ALL`).\n\nReturns the parsed JavaScript value.\n\n### Allow\n\nAn object that specifies what kind of partialness is allowed during JSON parsing. It has the following properties:\n\n- `STR`: Allow partial string.\n- `NUM`: Allow partial number.\n- `ARR`: Allow partial array.\n- `OBJ`: Allow partial object.\n- `NULL`: Allow partial null.\n- `BOOL`: Allow partial boolean.\n- `NAN`: Allow partial NaN.\n- `INFINITY`: Allow partial Infinity.\n- `_INFINITY`: Allow partial -Infinity.\n- `INF`: Allow both partial Infinity and -Infinity.\n- `SPECIAL`: Allow all special values.\n- `ATOM`: Allow all atomic values.\n- `COLLECTION`: Allow all collection values.\n- `ALL`: Allow all values.\n\n## Testing\n\nTo run the tests for this library, you should clone the repository and install the dependencies:\n\n```sh\ngit clone https://github.com/promplate/partial-json-parser-js.git\ncd partial-json-parser-js\nnpm i\n```\n\nThen, you can run the tests using [Vitest](https://vitest.dev/):\n\n```sh\nnpm run test\n```\n\nPlease note that while we strive to cover as many edge cases as possible, it's always possible that some cases might not be covered.\n\n## License\n\nThis project is licensed under the MIT License.\n","readmeFilename":"README.md"}