{"_id":"@bonniernews/json-autocomplete","_rev":"28-f6844c9746760f0ce8e611520160f134","name":"@bonniernews/json-autocomplete","dist-tags":{"latest":"0.0.15"},"versions":{"0.0.10":{"name":"@bonniernews/json-autocomplete","version":"0.0.10","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/json-autocomplete@0.0.10","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"wisko","email":"william.skold@gmail.com"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"}],"homepage":"https://github.com/BonnierNews/json-autocomplete#readme","bugs":{"url":"https://github.com/BonnierNews/json-autocomplete/issues"},"dist":{"shasum":"dc7178330afba1437c88b2dbd7fd0340dc661ccd","tarball":"https://registry.npmjs.org/@bonniernews/json-autocomplete/-/json-autocomplete-0.0.10.tgz","fileCount":9,"integrity":"sha512-yyTOIodi56x+xf+VZ5OeRt2J4aXpz7jqxBQgvHhrT7jNznlTsQ/DwbrtKy90/PdIxl1Zj+vvA/4yqS2d5m5dtw==","signatures":[{"sig":"MEQCIFivK4UkYWBK8lPYWdqbFJ4oihoSX9mjUIBcjq9Y2l+gAiBDWEGm0M4LQ7ICe2j4iFN99LnR8s3T3spMXTUu/FvAQQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28778},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"1cdf4a431e897b607f7926111d8bb00a8e4c5df8","scripts":{"lint":"eslint . --cache && npm run typecheck","test":"mocha --exit --reporter ${REPORTER:-spec}","build":"tsup","format":"prettier --write . && eslint --fix .","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","local-coverage":"c8 --reporter html npm test && c8 check-coverage || open ./coverage/index.html","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/json-autocomplete.git","type":"git"},"_npmVersion":"10.9.0","description":"Completes incomplete JSON string with caching capabilites","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.3","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/json-autocomplete_0.0.10_1733991979128_0.7558864345398173","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@bonniernews/json-autocomplete","version":"0.0.11","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/json-autocomplete@0.0.11","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"wisko","email":"william.skold@gmail.com"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"}],"homepage":"https://github.com/BonnierNews/json-autocomplete#readme","bugs":{"url":"https://github.com/BonnierNews/json-autocomplete/issues"},"dist":{"shasum":"bf101aad9f02945ba1c09fee9f3b9943ddff8996","tarball":"https://registry.npmjs.org/@bonniernews/json-autocomplete/-/json-autocomplete-0.0.11.tgz","fileCount":9,"integrity":"sha512-qFg+gYmbfnDAyBeGpL0EjtQ+nRfwKMA94bq23MMzY+OAWpBgi4XQZPoGS0L96Drs5L8SaC/0JjXtdCfjaJAWjg==","signatures":[{"sig":"MEYCIQCBL2y49rC0ePxxn/u8HqNWw7lTGHFtK7WiNm+kKwhJbgIhAP3aUQEqhc3VJFcrkJ48bTX7bvhdhV9WzRdHrVjKHgr6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28922},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"6ea6470dd22d87663e9913b3d05004c1995ce6c0","scripts":{"lint":"eslint . --cache && npm run typecheck","test":"mocha --exit --reporter ${REPORTER:-spec}","build":"tsup","format":"prettier --write . && eslint --fix .","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","local-coverage":"c8 --reporter html npm test && c8 check-coverage || open ./coverage/index.html","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/json-autocomplete.git","type":"git"},"_npmVersion":"10.9.0","description":"Completes incomplete JSON string with caching capabilites","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.3","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/json-autocomplete_0.0.11_1734358429300_0.0780931599502912","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@bonniernews/json-autocomplete","version":"0.0.12","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/json-autocomplete@0.0.12","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"wisko","email":"william.skold@gmail.com"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"}],"homepage":"https://github.com/BonnierNews/json-autocomplete#readme","bugs":{"url":"https://github.com/BonnierNews/json-autocomplete/issues"},"dist":{"shasum":"8cb94c236e9c14f1baf8e7c7e3543e7f52e9fa0d","tarball":"https://registry.npmjs.org/@bonniernews/json-autocomplete/-/json-autocomplete-0.0.12.tgz","fileCount":9,"integrity":"sha512-QW71oc1yuROmLUo6I6mSfjo6GooCsDHZTGhxi+OYORvOTGvBQP5BmmyIqZ0Ofx7qfSEfx87QEX5G918T8b7AVQ==","signatures":[{"sig":"MEUCIQDIvPTZyMgiKCqnrZad/ZQU5YincZMZRhyacMYxyNOChgIgefU3ewMHBylkzbH06Oq6hv+JYHgIkfW001o4dDNefdY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31184},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"6ea6470dd22d87663e9913b3d05004c1995ce6c0","scripts":{"lint":"eslint . --cache && npm run typecheck","test":"mocha --exit --reporter ${REPORTER:-spec}","build":"tsup","format":"prettier --write . && eslint --fix .","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","local-coverage":"c8 --reporter html npm test && c8 check-coverage || open ./coverage/index.html","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/json-autocomplete.git","type":"git"},"_npmVersion":"10.9.0","description":"Completes incomplete JSON string with caching capabilites","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.3","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/json-autocomplete_0.0.12_1734358507276_0.1520159835454722","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@bonniernews/json-autocomplete","version":"0.0.13","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/json-autocomplete@0.0.13","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"wisko","email":"william.skold@gmail.com"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"}],"homepage":"https://github.com/BonnierNews/json-autocomplete#readme","bugs":{"url":"https://github.com/BonnierNews/json-autocomplete/issues"},"dist":{"shasum":"73ddadac9b827f6e3029316427d9644714163a4a","tarball":"https://registry.npmjs.org/@bonniernews/json-autocomplete/-/json-autocomplete-0.0.13.tgz","fileCount":9,"integrity":"sha512-+OdcfWjlygzZZqbafEQxHIXeDpOlAgMC8H0UsQj0HRIICZBl0PL2+5GlUgx8y8czX36BbZOZYL/1ao3xp58YHA==","signatures":[{"sig":"MEUCIQDyjB2sWC3C2n/0docaTYkV8mWuvMeNdWDsEHWkvhQnigIgbtg5vcAvQce74wbqBxYAcdDGxTmMs6zSrZGG9lddkpo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36144},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"639aa00d5467829ad1243cb62f1d6a89893fd845","scripts":{"lint":"eslint . --cache && npm run typecheck","test":"mocha --exit --reporter ${REPORTER:-spec}","build":"tsup","format":"prettier --write . && eslint --fix .","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","local-coverage":"c8 --reporter html npm test && c8 check-coverage || open ./coverage/index.html","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/json-autocomplete.git","type":"git"},"_npmVersion":"10.9.0","description":"Completes incomplete JSON string with caching capabilites","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.3","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/json-autocomplete_0.0.13_1734360902567_0.8024961167213238","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"@bonniernews/json-autocomplete","version":"0.0.14","author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/json-autocomplete@0.0.14","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"wisko","email":"william.skold@gmail.com"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"}],"homepage":"https://github.com/BonnierNews/json-autocomplete#readme","bugs":{"url":"https://github.com/BonnierNews/json-autocomplete/issues"},"dist":{"shasum":"527b0b1e57ff1cdbb480b3290ac456c4e2a01fe5","tarball":"https://registry.npmjs.org/@bonniernews/json-autocomplete/-/json-autocomplete-0.0.14.tgz","fileCount":9,"integrity":"sha512-yvktug+lyF32Fcl9raK1ZcNZyVpv62fbruop1s1pqUh29zD+4oCmgMBve64LmVz+cNed4X/qchRs931vi2j0yQ==","signatures":[{"sig":"MEQCICbm5hw4x70x1EjF0O2HJ0R5SJqjyx3ceY6t0j16IjLyAiAML3s+DMg+XfQiicY5jl8JSRpvDqiJ0wIzeRjKuYwFyA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30862},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"f610df908248908a711f59b6ca5ecc3b8827fd5d","scripts":{"lint":"eslint . --cache && npm run typecheck","test":"mocha --exit --reporter ${REPORTER:-spec}","build":"tsup","format":"prettier --write . && eslint --fix .","coverage":"c8 npm test && c8 check-coverage","typecheck":"tsc --noEmit","local-coverage":"c8 --reporter html npm test && c8 check-coverage || open ./coverage/index.html","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/json-autocomplete.git","type":"git"},"_npmVersion":"10.9.0","description":"Completes incomplete JSON string with caching capabilites","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.3","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/json-autocomplete_0.0.14_1734382913195_0.9803083844133971","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@bonniernews/json-autocomplete","version":"0.0.15","keywords":["JSON","autocomplete","JSON parser","incremental JSON","JSON builder","JSON editor","JSON validator","JSON string","caching","Node.js","TypeScript","error handling","partial JSON","JSON fragments","JSON completion","data processing","developer tool","utility library","Bonnier News","LLM","Structured Output","Streaming","JSON streaming"],"author":{"name":"Bonnier News"},"license":"MIT","_id":"@bonniernews/json-autocomplete@0.0.15","maintainers":[{"name":"markusn","email":"markus@botten.org"},{"name":"mxtr","email":"max.olofsson@bonniernews.se"},{"name":"matsrorbecker","email":"mats@rorbecker.com"},{"name":"dan.karlsson","email":"dan.karlsson@bonniernews.se"},{"name":"jonaswalden","email":"jonas.waldeen@gmail.com"},{"name":"indeedshouts","email":"indeedshouts@gmail.com"},{"name":"marie-winther","email":"marie.winther@bonniernews.se"},{"name":"marcusgronblad","email":"marcus.gronblad@bonniernews.se"},{"name":"axeljohanssonbonniernews","email":"axel.johansson@bonniernews.se"},{"name":"karlbergc","email":"christoffer.karlberg@bonniernews.se"},{"name":"chavah","email":"chavah.forler@bonniernews.se"},{"name":"joelekman","email":"joel.ekman@bonniernews.se"},{"name":"adam.hakansson","email":"adam.hakansson@bonniernews.se"},{"name":"hilleso","email":"marcus.hilleso@expressen.se"},{"name":"gusliden","email":"gusliden@gmail.com"},{"name":"andreas.samuelsson","email":"andreas.samuelsson@bonniernews.se"},{"name":"jzachrisson","email":"jesper.zachrisson@bonniernews.se"},{"name":"norla","email":"mattias.norlander@gmail.com"},{"name":"varneynz","email":"simon.varney@bonniernews.se"},{"name":"aliceboberg","email":"alice.boberg@bonniernews.se"},{"name":"johark","email":"johan.arkad@bonniernews.se"},{"name":"nifo","email":"niklas.forsstrom@bonniernews.se"},{"name":"herbola","email":"herman.jansson@bonniernews.se"},{"name":"vitryssen","email":"andre.nordlund@bonniernews.se"},{"name":"takolander","email":"william.takolander@bonniernews.se"},{"name":"morre","email":"marten.persson@hdsydsvenskan.se"},{"name":"mikael.mattsson","email":"mikael.mattsson@bonniernews.se"},{"name":"schristianssonbn","email":"seb.christiansson@bonniernews.se"},{"name":"mattiasobn","email":"mattias.olla@bonniernews.se"},{"name":"daghall","email":"markus@daghall.se"},{"name":"erandersson","email":"ericandersson1@gmail.com"},{"name":"jonaek","email":"jonathan.ek@bonniernews.se"},{"name":"amundsentb","email":"amundsentb@gmail.com"},{"name":"drgeobn","email":"daniel.rasmussen@bonniernews.se"},{"name":"oscartholander","email":"oscar@tholander.nu"},{"name":"peterpettersson","email":"peter.pettersson@bonniernews.se"},{"name":"ollenolle","email":"olle.nordin@bonniernews.se"},{"name":"jackesa","email":"jakob.pedersen@bonniernews.se"},{"name":"kristofferjansson","email":"kristoffer.jansson@bonniernews.se"},{"name":"kirinja","email":"blom.niklas@gmail.com"},{"name":"kitgus","email":"kit.gustavsson@bonniernews.se"},{"name":"odynvolk","email":"alexi.rahman@r76.se"}],"homepage":"https://github.com/BonnierNews/json-autocomplete#readme","bugs":{"url":"https://github.com/BonnierNews/json-autocomplete/issues"},"dist":{"shasum":"8dfbb2e5a12122608cd1857087db893e67b358c7","tarball":"https://registry.npmjs.org/@bonniernews/json-autocomplete/-/json-autocomplete-0.0.15.tgz","fileCount":9,"integrity":"sha512-+rTrbW4frFWxP5T/8ThY0v0p+DiiyoK4UDq2AzgcSxlsQLC3/rQTq2lY2nye4kHRJm6aIn0yYBQ104E1Rai/bQ==","signatures":[{"sig":"MEUCIGjXFqg6fR8XDcpZIpC0QpJ82dSN54GFQF66+7bEsX+MAiEA5z3YdPZ3AWV7rCIUhbdh7jEkvKZrOG2vSAfUMF82+i0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31319},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{"import":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","require":"./dist/index.cjs"}},"gitHead":"b025474e369dd1ad43f2c9b440b1b3f8f5605879","scripts":{"lint":"eslint . --cache && npm run typecheck","test":"mocha --exit --reporter ${REPORTER:-spec}","build":"tsup","format":"prettier --write . && npm run lint:fix","coverage":"c8 npm test && c8 check-coverage","lint:fix":"eslint . --fix","typecheck":"tsc --noEmit","local-coverage":"c8 --reporter html npm test && c8 check-coverage || open ./coverage/index.html","prepublishOnly":"npm run build"},"_npmUser":{"name":"herbola","email":"herman.jansson@bonniernews.se"},"repository":{"url":"git+https://github.com/BonnierNews/json-autocomplete.git","type":"git"},"_npmVersion":"10.9.3","description":"Completes incomplete JSON string with caching capabilites","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.19.1","chai":"^5.1.1","tsup":"^8.3.5","mocha":"^11.0.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.6.3","@types/chai":"^5.0.0","@types/node":"^22.9.0","@types/mocha":"^10.0.10","@types/sinon":"^17.0.3","mocha-cakes-2":"^3.3.0","typescript-eslint":"^8.13.0","@bonniernews/tsconfig":"^0.0.2","@bonniernews/eslint-config":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/json-autocomplete_0.0.15_1763999232982_0.49974536650166157","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2024-12-12T08:26:19.045Z","modified":"2026-08-26T12:06:50.633Z","0.0.10":"2024-12-12T08:26:19.295Z","0.0.11":"2024-12-16T14:13:49.466Z","0.0.12":"2024-12-16T14:15:07.455Z","0.0.13":"2024-12-16T14:55:02.751Z","0.0.14":"2024-12-16T21:01:53.371Z","0.0.15":"2025-11-24T15:47:13.207Z"},"bugs":{"url":"https://github.com/BonnierNews/json-autocomplete/issues"},"author":{"name":"Bonnier News"},"license":"MIT","homepage":"https://github.com/BonnierNews/json-autocomplete#readme","keywords":["JSON","autocomplete","JSON parser","incremental JSON","JSON builder","JSON editor","JSON validator","JSON string","caching","Node.js","TypeScript","error handling","partial JSON","JSON fragments","JSON completion","data processing","developer tool","utility library","Bonnier News","LLM","Structured Output","Streaming","JSON streaming"],"repository":{"url":"git+https://github.com/BonnierNews/json-autocomplete.git","type":"git"},"description":"Completes incomplete JSON string with caching capabilites","maintainers":[{"email":"markus@botten.org","name":"markusn"},{"email":"max.olofsson@bonniernews.se","name":"mxtr"},{"email":"mats@rorbecker.com","name":"matsrorbecker"},{"email":"dan.arola@bonniernews.se","name":"dan.karlsson"},{"email":"adil.aboulkacim@bonniernews.se","name":"adil.aboulkacim"},{"email":"marie.winther@bonniernews.se","name":"marie-winther"},{"email":"marcus.gronblad@bonniernews.se","name":"marcusgronblad"},{"email":"axel.johansson@bonniernews.se","name":"axeljohanssonbonniernews"},{"email":"christoffer.karlberg@bonniernews.se","name":"karlbergc"},{"email":"chavah.forler@bonniernews.se","name":"chavah"},{"email":"joel.ekman@bonniernews.se","name":"joelekman"},{"email":"adam.hakansson@bonniernews.se","name":"adam.hakansson"},{"email":"marcus.hilleso@expressen.se","name":"hilleso"},{"email":"gusliden@gmail.com","name":"gusliden"},{"email":"andreas.samuelsson@bonniernews.se","name":"andreas.samuelsson"},{"email":"jesper.zachrisson@bonniernews.se","name":"jzachrisson"},{"email":"mattias.norlander@gmail.com","name":"norla"},{"email":"simon.varney@bonniernews.se","name":"varneynz"},{"email":"alice.boberg@bonniernews.se","name":"aliceboberg"},{"email":"johan.arkad@bonniernews.se","name":"johark"},{"email":"niklas.forsstrom@bonniernews.se","name":"nifo"},{"email":"herman.jansson@bonniernews.se","name":"herbola"},{"email":"andre.nordlund@bonniernews.se","name":"vitryssen"},{"email":"william.takolander@bonniernews.se","name":"takolander"},{"email":"marten.persson@hdsydsvenskan.se","name":"morre"},{"email":"mikael.mattsson@bonniernews.se","name":"mikael.mattsson"},{"email":"seb.christiansson@bonniernews.se","name":"schristianssonbn"},{"email":"mattias.olla@bonniernews.se","name":"mattiasobn"},{"email":"markus@daghall.se","name":"daghall"},{"email":"ericandersson1@gmail.com","name":"erandersson"},{"email":"jonathan.ek@bonniernews.se","name":"jonaek"},{"email":"amundsentb@gmail.com","name":"amundsentb"},{"email":"daniel.rasmussen@bonniernews.se","name":"drgeobn"},{"email":"oscar@tholander.nu","name":"oscartholander"},{"email":"peter.pettersson@bonniernews.se","name":"peterpettersson"},{"email":"basistoscar@gmail.com","name":"liroliro"},{"email":"andreas.egneblad@bonniernews.se","name":"torkelberget"},{"email":"johan@kasperi.se","name":"johankasperi"},{"email":"jon.eldeklint@bonniernews.se","name":"jon.eldeklint"},{"email":"niklas.blom@bonniernews.se","name":"nblom"},{"email":"jakob.pedersen@bonniernews.se","name":"jackesa"},{"email":"olle.nordin@bonniernews.se","name":"ollenolle"},{"email":"emil@thatemil.com","name":"emilbjorklund"},{"email":"japlilian@gmail.com","name":"lilianj"},{"email":"kristoffer.jansson@bonniernews.se","name":"kristofferjansson"},{"email":"kit.gustavsson@bonniernews.se","name":"kitgus"},{"email":"alexi.rahman@r76.se","name":"odynvolk"}],"readme":"# JSON Autocomplete\n\n![npm](https://img.shields.io/npm/v/@bonniernews/json-autocomplete)\n![License](https://img.shields.io/npm/l/@bonniernews/json-autocomplete)\n![Coverage](https://img.shields.io/badge/coverage-100%25-brightgreen)\n\nA utility to incrementally build and complete JSON strings from potentially incomplete JSON append operations with caching capabilities. Perfect for modern LLM applications that should stream json output. Perfectly combined with chat completions API from OpenAI.\n\n## Table of Contents\n\n- [Features](#features)\n- [Installation](#installation)\n- [Usage](#usage)\n  - [Basic Example](#basic-example)\n  - [Using `jsonAutocomplete` Helper](#using-jsonautocomplete-helper)\n- [API Reference](#api-reference)\n  - [`createJsonAutocomplete()`](#createjsonautocomplete)\n  - [`jsonAutocomplete`](#jsonautocomplete)\n- [Contributing](#contributing)\n- [License](#license)\n- [Support](#support)\n\n## Features\n\n- **Incremental Building**: Append parts of a JSON string incrementally and get the best possible valid JSON.\n- **String Handling**: Correctly handles strings, escape characters, and nested structures.\n- **Error Checking**: Detects unbalanced brackets and braces.\n- **Caching Capabilities**: Efficiently manages the internal state to optimize performance.\n\n## Installation\n\nYou can install **JSON Autocomplete** via [npm](https://www.npmjs.com/) or [Yarn](https://yarnpkg.com/):\n\n```bash\n# Using npm\nnpm install @bonniernews/json-autocomplete\n\n# Using Yarn\nyarn add @bonniernews/json-autocomplete\n```\n\n## Usage\n\n### Basic Example\n\n```typescript\nimport { createJsonAutocomplete } from \"@bonniernews/json-autocomplete\";\n\n// Create a new autocompleter instance\nconst autocompleter = createJsonAutocomplete();\n\n// Append incomplete JSON fragments\nconst part1 = '{\"name\": \"Alice\", \"age\": 30';\nconst completed1 = autocompleter.append(part1);\nconsole.log(completed1); // Outputs: {\"name\": \"Alice\", \"age\": 30}\n\nconst part2 = ', \"address\": {\"street\": \"123 Main St';\nconst completed2 = autocompleter.append(part2);\nconsole.log(completed2); // Outputs: {\"name\": \"Alice\", \"age\": 30, \"address\": {\"street\": \"123 Main St\"}}\n\nconst part3 = '\", \"city\": \"Wonderland\"}}';\nconst completed3 = autocompleter.append(part3);\nconsole.log(completed3); // Outputs: {\"name\": \"Alice\", \"age\": 30, \"address\": {\"street\": \"123 Main St\", \"city\": \"Wonderland\"}}\n```\n\n### Using `jsonAutocomplete` Helper\n\nFor simpler use cases, you can use the `jsonAutocomplete` helper function which manages the autocompleter instance internally.\n\n```typescript\nimport { jsonAutocomplete } from \"@bonniernews/json-autocomplete\";\n\nconst incompleteJson1 = '{\"isActive\": true, \"roles\": [\"admin\", \"user\"';\nconst completedJson1 = jsonAutocomplete(incompleteJson1);\nconsole.log(completedJson1); // Outputs: {\"isActive\": true, \"roles\": [\"admin\", \"user\"]}\n\nconst incompleteJson2 = ', \"permissions\": {\"read\": true, \"write\": false';\nconst completedJson2 = jsonAutocomplete(incompleteJson2);\nconsole.log(completedJson2); // Outputs: {\"isActive\": true, \"roles\": [\"admin\", \"user\"], \"permissions\": {\"read\": true, \"write\": false}}\n```\n\n## API Reference\n\n### `createJsonAutocomplete()`\n\nCreates a new JSON autocompleter instance.\n\n#### Returns\n\nAn object with the following method:\n\n- **`append(part: string): string`**: Appends a fragment of JSON and returns the best possible valid JSON string constructed from all appended fragments.\n\n#### Example\n\n```typescript\nimport { createJsonAutocomplete } from \"@bonniernews/json-autocomplete\";\n\nconst autocompleter = createJsonAutocomplete();\n\nconst jsonPart1 = '{\"product\": \"Laptop\", \"price\": 1200';\nconst completedJson1 = autocompleter.append(jsonPart1);\nconsole.log(completedJson1); // {\"product\": \"Laptop\", \"price\": 1200}\n\nconst jsonPart2 = ', \"specs\": {\"cpu\": \"Intel i7\", \"ram\": \"16GB\"';\nconst completedJson2 = autocompleter.append(jsonPart2);\nconsole.log(completedJson2); // {\"product\": \"Laptop\", \"price\": 1200, \"specs\": {\"cpu\": \"Intel i7\", \"ram\": \"16GB\"}}\n\nconst jsonPart3 = \"}}\";\nconst completedJson3 = autocompleter.append(jsonPart3);\nconsole.log(completedJson3); // {\"product\": \"Laptop\", \"price\": 1200, \"specs\": {\"cpu\": \"Intel i7\", \"ram\": \"16GB\"}}\n```\n\n### `jsonAutocomplete`\n\nA helper function to incrementally autocomplete a JSON string without manually managing the autocompleter instance.\n\n#### Parameters\n\n- **`incompleteJsonString: string`**: The incomplete JSON string fragment.\n- **`autocompleter?: ReturnType<typeof createJsonAutocomplete>`**: (Optional) An existing autocompleter instance. If not provided, a new one is created.\n\n#### Returns\n\n- **`string`**: The best possible valid JSON string constructed from all appended fragments.\n\n#### Example\n\n```typescript\nimport { jsonAutocomplete } from \"@bonniernews/json-autocomplete\";\n\nlet completedJson = jsonAutocomplete('{\"title\": \"Book\"');\nconsole.log(completedJson); // {\"title\": \"Book\"}\n\ncompletedJson = jsonAutocomplete(', \"author\": \"Jane Doe\"');\nconsole.log(completedJson); // {\"title\": \"Book\", \"author\": \"Jane Doe\"}\n\ncompletedJson = jsonAutocomplete(\"}\");\nconsole.log(completedJson); // {\"title\": \"Book\", \"author\": \"Jane Doe\"}\n```\n\n## Contributing\n\nContributions are welcome! Please follow these steps:\n\n1. **Fork the repository**: Click the [Fork](https://github.com/BonnierNews/json-autocomplete/fork) button at the top right of the repository page.\n2. **Clone your fork**:\n\n   ```bash\n   git clone https://github.com/your-username/json-autocomplete.git\n   cd json-autocomplete\n   ```\n\n3. **Install dependencies**:\n\n   ```bash\n   npm install\n   ```\n\n4. **Create a new branch**:\n\n   ```bash\n   git checkout -b feature/YourFeature\n   ```\n\n5. **Make your changes**: Implement your feature or bug fix.\n6. **Lint and type-check**:\n\n   ```bash\n   npm run lint\n   npm run typecheck\n   ```\n\n7. **Run tests**:\n\n   ```bash\n   npm test\n   ```\n\n8. **Commit your changes**:\n\n   ```bash\n   git commit -m \"Add your message here\"\n   ```\n\n9. **Push to your fork**:\n\n   ```bash\n   git push origin feature/YourFeature\n   ```\n\n10. **Create a Pull Request**: Go to the original repository and submit a pull request.\n\n### Code of Conduct\n\nPlease adhere to the [Bonnier News Code of Conduct](https://github.com/BonnierNews/json-autocomplete/blob/main/CODE_OF_CONDUCT.md) in all your interactions with the project.\n\n## License\n\nThis project is licensed under the [MIT License](./LICENSE). You are free to use, modify, and distribute it as per the license terms.\n\n## Support\n\nIf you encounter any issues or have questions, please open an [issue](https://github.com/BonnierNews/json-autocomplete/issues) on GitHub.\n","readmeFilename":"README.md"}