{"_id":"@caruuto/caruuto-js","_rev":"26-0ff6228c30e620f63e4fe54cbb82671f","name":"@caruuto/caruuto-js","dist-tags":{"latest":"0.9.9"},"versions":{"0.1.0":{"name":"@caruuto/caruuto-js","version":"0.1.0","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.1.0","maintainers":[{"name":"woogz","email":"jayraydon@gmail.com"},{"name":"jimlambie","email":"jameslambie@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"afee14ccf2f1a1f4133fa1fd342db7122456ce21","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.1.0.tgz","fileCount":14,"integrity":"sha512-KvFOtTZhyLT9C5jmjj4smd0LdUBGqe6jO836g4OsRhlnnDB+RkFa5AsWKzxYmpjThRGT68BzRviwWiAkd9vnGA==","signatures":[{"sig":"MEUCIQCsO3DsvAvicerHUl8tVVqkxMBd1CoAzz/V3EFA9k7zGgIgUsKdWw3/teUykbCG4RqKPWUe6WOG3VDgzkEke9oYRbc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22264},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=16"},"exports":"./index.js","gitHead":"b479adae9d5a257fadf892a4efdbafef78b6dccd","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha {test,core/test}/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"8.19.4","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"16.20.0","dependencies":{"got":"^11.0.0","debug":"^2.6.1","mocha":"^10.2.0","url-parse":"1.4.3","cross-fetch":"^3.1.6","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","nock":"^12.0.0","husky":"^8.0.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","mockery":"^1.7.0","prettier":"2.8.4","standard":"^16.0.3","coveralls":"^3.0.2","form-data":"^4.0.0","supertest":"^4.0.0","underscore":"^1.8.3","lint-staged":"^13.2.1","prettier-standard":"^15.0.1","eslint-config-next":"13.0.5","eslint-plugin-react":"^7.32.2","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"standard.options":{"envs":[],"ignore":[],"plugins":[]},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.1.0_1686180305924_0.8121162530411161","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@caruuto/caruuto-js","version":"0.2.0","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.2.0","maintainers":[{"name":"woogz","email":"jayraydon@gmail.com"},{"name":"jimlambie","email":"jameslambie@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"6df2b37fea03a702f8eebd0c5f181c55d4ee6c98","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.2.0.tgz","fileCount":14,"integrity":"sha512-LZDmzzJqNKuNpQ/JLPDp2ed8QI41pQcEp/AXaD8Cx8JiPNeRSbxQ3V9fMQxrPpOG+UM0GS145LW+mkulYnV4Qg==","signatures":[{"sig":"MEUCIA/4NGPd9pspoQr7jLMQ2XFLuf+7EQKsEWAHFwJeH6N8AiEAyCdwGusncL8loLoTatXDl9EHYeyn63n4dUpl0HnW+hg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23032},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=16"},"exports":"./index.js","gitHead":"ed417a07feb7d518b9094c20972850af5ea21444","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha {test,core/test}/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"8.19.4","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"16.20.0","dependencies":{"got":"^11.0.0","debug":"^2.6.1","mocha":"^10.2.0","url-parse":"1.4.3","cross-fetch":"^3.1.6","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","nock":"^12.0.0","husky":"^8.0.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","mockery":"^1.7.0","prettier":"2.8.4","standard":"^16.0.3","coveralls":"^3.0.2","form-data":"^4.0.0","supertest":"^4.0.0","underscore":"^1.8.3","lint-staged":"^13.2.1","prettier-standard":"^15.0.1","eslint-config-next":"13.0.5","eslint-plugin-react":"^7.32.2","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"standard.options":{"envs":[],"ignore":[],"plugins":[]},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.2.0_1691637008231_0.27243371490634183","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"@caruuto/caruuto-js","version":"0.2.1","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.2.1","maintainers":[{"name":"woogz","email":"jayraydon@gmail.com"},{"name":"jimlambie","email":"jameslambie@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"74c12c30e9f0886d39a2869f203ae2d7d1504da9","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.2.1.tgz","fileCount":14,"integrity":"sha512-rafNVlwXC52x+UgyUqXEuV88WvwcMs/uPi9ZK5gifOG1CmSMagXUAi7IxJN9t071746CLp3FUDGJ/TftqHOhng==","signatures":[{"sig":"MEUCIFUqsl51cQ8G/bLlG+mq8I7ROhJGi+9//DZQUEgiJrIPAiEA8rRNbe64vJ2O1fV834uZRrENvGN86WwwIlEzib5Y2ro=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23327},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=16"},"exports":"./index.js","gitHead":"50154d6f2cc85cd747799903a34f296f0fe5ff67","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha {test,core/test}/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"8.19.4","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"16.20.0","dependencies":{"got":"^11.0.0","debug":"^2.6.1","mocha":"^10.2.0","url-parse":"1.4.3","cross-fetch":"^3.1.6","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","nock":"^12.0.0","husky":"^8.0.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","mockery":"^1.7.0","prettier":"2.8.4","standard":"^16.0.3","coveralls":"^3.0.2","form-data":"^4.0.0","supertest":"^4.0.0","underscore":"^1.8.3","lint-staged":"^13.2.1","prettier-standard":"^15.0.1","eslint-config-next":"13.0.5","eslint-plugin-react":"^7.32.2","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"standard.options":{"envs":[],"ignore":[],"plugins":[]},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.2.1_1701477537117_0.971211124416959","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"@caruuto/caruuto-js","version":"0.3.0","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.3.0","maintainers":[{"name":"woogz","email":"jayraydon@gmail.com"},{"name":"jimlambie","email":"jameslambie@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"d30788be5739c347a4e06b3f9e7d6a375e27e80c","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.3.0.tgz","fileCount":14,"integrity":"sha512-PDzn6kLUDdgvHm96h1ycgcCuIJBH1EdGZPpPn1H5MS5g3vMnZuRKiuzDJFHInWFL1119Fq1kFZydz+v4/iisQw==","signatures":[{"sig":"MEYCIQCrL1fToTtCoZd81UsFEzIAEyu2bWGpRUM0QypIepRdJQIhAO3Bl7QpdPHmyRxntZHh2HnmepAEOJdCtujm+daa84LJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23636},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=16"},"exports":"./index.js","gitHead":"983e7d64c033ebb038c132cd6463c865bec69a9e","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha {test,core/test}/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"8.19.4","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"16.20.0","dependencies":{"got":"^11.0.0","debug":"^2.6.1","mocha":"^10.2.0","cross-fetch":"^3.1.6","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","nock":"^12.0.0","husky":"^8.0.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","mockery":"^1.7.0","prettier":"2.8.4","standard":"^16.0.3","coveralls":"^3.0.2","form-data":"^4.0.0","supertest":"^4.0.0","underscore":"^1.8.3","lint-staged":"^13.2.1","prettier-standard":"^15.0.1","eslint-config-next":"13.0.5","eslint-plugin-react":"^7.32.2","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"standard.options":{"envs":[],"ignore":[],"plugins":[]},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.3.0_1704775836197_0.7151832086149748","host":"s3://npm-registry-packages"}},"0.3.1":{"name":"@caruuto/caruuto-js","version":"0.3.1","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.3.1","maintainers":[{"name":"woogz","email":"jayraydon@gmail.com"},{"name":"jimlambie","email":"jameslambie@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"2dd4ba6ce9a463add5830b1286221164ee932541","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.3.1.tgz","fileCount":14,"integrity":"sha512-ZgZQcMt385bPD+MZUfuYmdWTtdvwrkYJhtx/1cqwHEiHhGgMaUOXmAF71nP7FxS10T9jETKaGzzF7IHp1fFpog==","signatures":[{"sig":"MEUCIQC5jIlUklQYWxrqIinxN78C8OtCGlOX6rXtcFUNW19h1QIgRKkYPko/g6CPiHgzdY2QHvXHDeQIe2ryHIy+MNfgp2o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23713},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=12"},"exports":"./index.js","gitHead":"db328de48ca3dd7c044b80b162ff2031adfc38ca","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha {test,core/test}/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"8.19.4","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"16.20.0","dependencies":{"got":"^11.0.0","debug":"^2.6.1","mocha":"^10.2.0","cross-fetch":"^3.1.6","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","nock":"^12.0.0","husky":"^8.0.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","mockery":"^1.7.0","prettier":"2.8.4","standard":"^16.0.3","coveralls":"^3.0.2","form-data":"^4.0.0","supertest":"^4.0.0","underscore":"^1.8.3","lint-staged":"^13.2.1","prettier-standard":"^15.0.1","eslint-config-next":"13.0.5","eslint-plugin-react":"^7.32.2","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"standard.options":{"envs":[],"ignore":[],"plugins":[]},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.3.1_1705383959923_0.8330740765219178","host":"s3://npm-registry-packages"}},"0.3.2":{"name":"@caruuto/caruuto-js","version":"0.3.2","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.3.2","maintainers":[{"name":"woogz","email":"jayraydon@gmail.com"},{"name":"jimlambie","email":"jameslambie@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"41e8293c76ab88c15e5e9f42220523f486d8d7d0","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.3.2.tgz","fileCount":14,"integrity":"sha512-uhpM9I8edaDDrEaGN304fo8cTs9DtHzfUodLIokPv4LfHzO+4koh2SQ9aE5EYNvydE0k0RayNXdZSO5H/GOfDQ==","signatures":[{"sig":"MEQCIE1k2hDObpAd1TXd7x0eKVR0ByqARANwEQkeuv6R5NLcAiBsv+CFFP5+igz/VDEy2B+iDMwBchq2k93VkIC2iD7kwg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23713},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=12"},"exports":"./index.js","gitHead":"14839a2982e785425e16aaffbd01e957e285c9dc","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha {test,core/test}/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"8.19.4","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"16.20.0","dependencies":{"got":"^11.0.0","debug":"^2.6.1","mocha":"^10.2.0","cross-fetch":"^3.1.6","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","nock":"^12.0.0","husky":"^8.0.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","mockery":"^1.7.0","prettier":"2.8.4","standard":"^16.0.3","coveralls":"^3.0.2","form-data":"^4.0.0","supertest":"^4.0.0","underscore":"^1.8.3","lint-staged":"^12.5.0","prettier-standard":"^15.0.1","eslint-config-next":"13.0.5","eslint-plugin-react":"^7.32.2","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"standard.options":{"envs":[],"ignore":[],"plugins":[]},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.3.2_1705384369523_0.1609214714585827","host":"s3://npm-registry-packages"}},"0.3.3":{"name":"@caruuto/caruuto-js","version":"0.3.3","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.3.3","maintainers":[{"name":"woogz","email":"jayraydon@gmail.com"},{"name":"jimlambie","email":"jameslambie@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"f23a78834fd21f88f147b66e54f69834799004e4","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.3.3.tgz","fileCount":14,"integrity":"sha512-xk8KsIPoCpvLzaW2uSxn65TnvG1VoLOCL6mfFj+1Q3QLbZRVS0gFxxs7tBZcwk2AFYQ4tueCs6O4WCYvr0sXOA==","signatures":[{"sig":"MEUCIEtSWXJQfjZ5XhYMxnrttX8xLKFXrzhq7WQjuzeQHP7UAiEAs+V3R3jXqyUWLU1MgxpFIZHWXfBsfrTzpgb85ruMpUI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25667},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=12"},"exports":"./index.js","gitHead":"67dc462c495621c7375ebf8c38a0d18ab345d626","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha {test,core/test}/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"8.19.4","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"16.20.0","dependencies":{"got":"^11.0.0","debug":"^2.6.1","mocha":"^10.2.0","cross-fetch":"^3.1.6","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","nock":"^12.0.0","husky":"^8.0.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","mockery":"^1.7.0","prettier":"2.8.4","standard":"^16.0.3","coveralls":"^3.0.2","form-data":"^4.0.0","supertest":"^4.0.0","underscore":"^1.8.3","lint-staged":"^12.5.0","prettier-standard":"^15.0.1","eslint-config-next":"13.0.5","eslint-plugin-react":"^7.32.2","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"standard.options":{"envs":[],"ignore":[],"plugins":[]},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.3.3_1714969457219_0.6881683964307215","host":"s3://npm-registry-packages"}},"0.3.4":{"name":"@caruuto/caruuto-js","version":"0.3.4","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.3.4","maintainers":[{"name":"woogz","email":"jayraydon@gmail.com"},{"name":"jimlambie","email":"jameslambie@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"0e0f3508b3cd09068b95193d63bada4138ae5c1e","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.3.4.tgz","fileCount":14,"integrity":"sha512-svJT1vPqxa47oQjEKXXAjsQ7ig88ocKZHmeHNIgsijZbEBoog+1qtbWhC857xUk4hDe9GQm66v/iAfOYSKezVA==","signatures":[{"sig":"MEUCIAZ5fQdo0fep0LhPQD9oCMjmtYzWPOcXrcAhbpAkMXtkAiEAqEqgi+CMzqD63nVK5j+mmKI59NnkAVQQkLGgihCV244=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25964},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=12"},"exports":"./index.js","gitHead":"67dc462c495621c7375ebf8c38a0d18ab345d626","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha {test,core/test}/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"8.19.4","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"16.20.0","dependencies":{"got":"^11.0.0","debug":"^2.6.1","mocha":"^10.2.0","encoding":"^0.1.13","cross-fetch":"^4.0.0","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","nock":"^12.0.0","husky":"^8.0.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","mockery":"^1.7.0","prettier":"2.8.4","standard":"^16.0.3","coveralls":"^3.0.2","form-data":"^4.0.0","supertest":"^4.0.0","underscore":"^1.8.3","lint-staged":"^12.5.0","prettier-standard":"^15.0.1","eslint-config-next":"13.0.5","eslint-plugin-react":"^7.32.2","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"standard.options":{"envs":[],"ignore":[],"plugins":[]},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.3.4_1715117015057_0.7344538304263137","host":"s3://npm-registry-packages"}},"0.3.5":{"name":"@caruuto/caruuto-js","version":"0.3.5","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.3.5","maintainers":[{"name":"woogz","email":"jayraydon@gmail.com"},{"name":"jimlambie","email":"jameslambie@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"08981801147e6d76a1d2e5eea8e38e8ba56ac686","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.3.5.tgz","fileCount":14,"integrity":"sha512-nXzm4E6vXQNOUFkDCNhf7fQNcRvvWPc1Bo4YTpPMpjkatpnHTvtolVgPMDcx33HwUfbmHBe3quzE5wCNZVi3NA==","signatures":[{"sig":"MEQCIA4Epmw3U740bi3LYQChFddB6CZx1RLCHwo+3J9HRS/yAiAo9dcBQ52ROHnzR3Xu0ucOMF400udXtkVyxJKOBYMctg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26375},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=12"},"exports":"./index.js","gitHead":"67dc462c495621c7375ebf8c38a0d18ab345d626","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha {test,core/test}/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"8.19.4","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"16.20.0","dependencies":{"got":"^11.0.0","debug":"^2.6.1","mocha":"^10.2.0","encoding":"^0.1.13","cross-fetch":"^4.0.0","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","nock":"^12.0.0","husky":"^8.0.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","mockery":"^1.7.0","prettier":"2.8.4","standard":"^16.0.3","coveralls":"^3.0.2","form-data":"^4.0.0","supertest":"^4.0.0","underscore":"^1.8.3","lint-staged":"^12.5.0","prettier-standard":"^15.0.1","eslint-config-next":"13.0.5","eslint-plugin-react":"^7.32.2","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"standard.options":{"envs":[],"ignore":[],"plugins":[]},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.3.5_1717641374467_0.2717899109080466","host":"s3://npm-registry-packages"}},"0.3.6":{"name":"@caruuto/caruuto-js","version":"0.3.6","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.3.6","maintainers":[{"name":"woogz","email":"jayraydon@gmail.com"},{"name":"jimlambie","email":"jameslambie@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"16abde0f69b79c93af1e60b7aca4397af8c20104","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.3.6.tgz","fileCount":14,"integrity":"sha512-c3V2cTl5iCJum2b1aTR3qX1NoVqMQ5/A3QYITHXAuBiao0xbmjBSckS3myb4qZhmTZn9P2tCvTNenpy6GI7m9g==","signatures":[{"sig":"MEUCIEFj7krCddDqK1D+T9F5j+pG5v+0oS3GG1UvXjhFYC0CAiEA5chMbf0x0mJC+FAJRTqt+KX3bzhpSWvKYPEzmfpO83c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27570},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=12"},"exports":"./index.js","gitHead":"660a2aef493ac2c13495015f2413c7dcb478aae4","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha {test,core/test}/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"10.7.0","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"18.20.3","dependencies":{"got":"^11.0.0","debug":"^2.6.1","mocha":"^10.2.0","encoding":"^0.1.13","cross-fetch":"^4.0.0","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","nock":"^12.0.0","husky":"^8.0.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","mockery":"^1.7.0","prettier":"2.8.4","standard":"^16.0.3","coveralls":"^3.0.2","form-data":"^4.0.0","supertest":"^4.0.0","underscore":"^1.8.3","lint-staged":"^12.5.0","prettier-standard":"^15.0.1","eslint-config-next":"13.0.5","eslint-plugin-react":"^7.32.2","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"standard.options":{"envs":[],"ignore":[],"plugins":[]},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.3.6_1725575391140_0.2506541592371232","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"@caruuto/caruuto-js","version":"0.4.0","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.4.0","maintainers":[{"name":"jimlambie","email":"jameslambie@gmail.com"},{"name":"woogz","email":"jayraydon@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"0bc9ec361489c78cefd4347ae7ca4c5adabd3d88","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.4.0.tgz","fileCount":17,"integrity":"sha512-L9aYdJjmybK4RCIOoYJD0uhsZEHAAzKmm7MvrqScHCKo+e9SDuyNwxhAaSf5y0dy/20HnARST/BjXn2m9kGbCA==","signatures":[{"sig":"MEUCIGzicEx1G7BxaDSLEdMnqS5pU96EO8LjK/c24RogNldBAiEAmt05H29aqwSP7236QqOaJedjShA9UpXZefE2JcaWqPk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31811},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=12"},"exports":"./index.js","gitHead":"f27acb1bf8c2b5c946dd8e2a51a32b49b2196697","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha {test,core/test}/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"10.7.0","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"18.20.3","dependencies":{"got":"^11.0.0","debug":"^2.6.1","mocha":"^10.2.0","encoding":"^0.1.13","cross-fetch":"^4.0.0","query-string":"5.0.1","human-interval":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","chai":"^5.2.0","nock":"^12.0.0","husky":"^8.0.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","mockery":"^1.7.0","prettier":"2.8.4","standard":"^16.0.3","coveralls":"^3.0.2","form-data":"^4.0.0","supertest":"^4.0.0","underscore":"^1.8.3","lint-staged":"^12.5.0","prettier-standard":"^15.0.1","eslint-config-next":"13.0.5","eslint-plugin-react":"^7.32.2","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"standard.options":{"envs":[],"ignore":[],"plugins":[]},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.4.0_1744847538223_0.9830192996161469","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@caruuto/caruuto-js","version":"0.4.1","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.4.1","maintainers":[{"name":"jimlambie","email":"jameslambie@gmail.com"},{"name":"woogz","email":"jayraydon@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"e2859291d6f3ac776dc63a2ca4806c8e99f38de9","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.4.1.tgz","fileCount":17,"integrity":"sha512-WWdYQcVoyVBEA+dYCgYbxTxi3oz6s039eRd9Xn1NYAgd6qJxw+7QlvG7OXRDJOhX9+QQc7YN7MhN/aMcMlIofw==","signatures":[{"sig":"MEUCIDs0ifzvXgywaatXjbfxAeMQwtJB3SJLbC5uwknKW/48AiEA2WZkyY4td9No0UE7u5tlNCzS1+d42mD+UKa3xc07Lm8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31763},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=12"},"exports":"./index.js","gitHead":"f27acb1bf8c2b5c946dd8e2a51a32b49b2196697","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha {test,core/test}/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"10.7.0","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"18.20.3","dependencies":{"got":"^11.0.0","debug":"^2.6.1","mocha":"^10.2.0","encoding":"^0.1.13","cross-fetch":"^4.0.0","query-string":"5.0.1","human-interval":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","chai":"^5.2.0","nock":"^12.0.0","husky":"^8.0.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","mockery":"^1.7.0","prettier":"2.8.4","standard":"^16.0.3","coveralls":"^3.0.2","form-data":"^4.0.0","supertest":"^4.0.0","underscore":"^1.8.3","lint-staged":"^12.5.0","prettier-standard":"^15.0.1","eslint-config-next":"13.0.5","eslint-plugin-react":"^7.32.2","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"standard.options":{"envs":[],"ignore":[],"plugins":[]},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.4.1_1744848367307_0.6620378681685597","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@caruuto/caruuto-js","version":"0.4.2","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.4.2","maintainers":[{"name":"jimlambie","email":"jameslambie@gmail.com"},{"name":"woogz","email":"jayraydon@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"a2d81ec54a31f0df3a968f2e869d1df3476b2f13","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.4.2.tgz","fileCount":17,"integrity":"sha512-YCScG43BH9q5CXr2GQNQGG1Y9ztw0tuxiXwdvThft4yjv6B888mnxuIKyUyRBhd19PHgd6qYuiwfB14oSCWFsQ==","signatures":[{"sig":"MEYCIQC+EHzsCHezfTScl64wUErQFo886SYxUr+UFt7wqk2z4QIhAJHGMwArzQycPM+hOTUb5P6+A4lWhF5eN+c0WiPkPUAc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33210},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=12"},"exports":"./index.js","gitHead":"f27acb1bf8c2b5c946dd8e2a51a32b49b2196697","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha {test,core/test}/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"10.7.0","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"18.20.3","dependencies":{"got":"^11.0.0","debug":"^2.6.1","mocha":"^10.2.0","undici":"^5.29.0","encoding":"^0.1.13","cross-fetch":"^4.0.0","query-string":"5.0.1","human-interval":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","chai":"^5.2.0","nock":"^12.0.0","husky":"^8.0.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","mockery":"^1.7.0","prettier":"2.8.4","standard":"^16.0.3","coveralls":"^3.0.2","form-data":"^4.0.2","supertest":"^4.0.0","underscore":"^1.8.3","lint-staged":"^12.5.0","prettier-standard":"^15.0.1","eslint-config-next":"13.0.5","eslint-plugin-react":"^7.32.2","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"standard.options":{"envs":[],"ignore":[],"plugins":[]},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.4.2_1753707764638_0.8756284657293238","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@caruuto/caruuto-js","version":"0.4.3","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.4.3","maintainers":[{"name":"jimlambie","email":"jameslambie@gmail.com"},{"name":"woogz","email":"jayraydon@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"4544cf7683f68fb1946ec8228d2320456a63ce7a","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.4.3.tgz","fileCount":17,"integrity":"sha512-+pAs3lTx95m6F552Xewp1iv4sXaDKF8oti1l/kHNQi+3wnfDiyz3AmKz6HJBkjlVCVqdGPcY2Xv1OGVF4vpeNQ==","signatures":[{"sig":"MEUCIQDv1ltKiKx5AJWTNqxWaKlWnK2NS75pLEgk7kgb2PgdFwIgO3/l3anX3URMWBy8g0dsAEj5nRoq+qXrR+UcexNZg6o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33209},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=12"},"exports":"./index.js","gitHead":"f27acb1bf8c2b5c946dd8e2a51a32b49b2196697","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha {test,core/test}/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"10.7.0","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"18.20.3","dependencies":{"got":"^11.0.0","debug":"^2.6.1","mocha":"^10.2.0","undici":"6.21.3","encoding":"^0.1.13","cross-fetch":"^4.0.0","query-string":"5.0.1","human-interval":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","chai":"^5.2.0","nock":"^12.0.0","husky":"^8.0.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","mockery":"^1.7.0","prettier":"2.8.4","standard":"^16.0.3","coveralls":"^3.0.2","form-data":"^4.0.2","supertest":"^4.0.0","underscore":"^1.8.3","lint-staged":"^12.5.0","prettier-standard":"^15.0.1","eslint-config-next":"13.0.5","eslint-plugin-react":"^7.32.2","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"standard.options":{"envs":[],"ignore":[],"plugins":[]},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.4.3_1753708574827_0.047949673155939454","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@caruuto/caruuto-js","version":"0.6.0","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.6.0","maintainers":[{"name":"jimlambie","email":"jameslambie@gmail.com"},{"name":"woogz","email":"jayraydon@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"501403472d24649ea4d5e717bd8d8c7433b64f85","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.6.0.tgz","fileCount":14,"integrity":"sha512-0lEYFmppzWK4g9ssfuGWrP6u7aP5hv2rY0PrLjWcAeOK2P/QX8/+gAfvA3jsDrAJI+GzCXdmJV6hlz5oDnIpyw==","signatures":[{"sig":"MEYCIQDCYx3s3JiR/SyYmt6oYaVwako2cMSu4//o2zQ2aMfFlQIhAO229JrEZgG28W4PY4uUPGJqRXOvwCWOSfuOIzGtZwBh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39458},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=18"},"exports":"./index.js","gitHead":"65ee9d95c7373e1fbc45b35bd774c8334e20a07e","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha {test,core/test}/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"10.9.8","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"22.22.3","dependencies":{"debug":"^2.6.1","undici":"6.21.3","encoding":"^0.1.13","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","husky":"^8.0.0","mocha":"^10.2.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","prettier":"2.8.4","coveralls":"^3.0.2","lint-staged":"^12.5.0","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.6.0_1780884270371_0.704844082583528","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@caruuto/caruuto-js","version":"0.7.0","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.7.0","maintainers":[{"name":"jimlambie","email":"jameslambie@gmail.com"},{"name":"woogz","email":"jayraydon@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"b36da14ec7217c2246d8faa64131578f89eefef6","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.7.0.tgz","fileCount":14,"integrity":"sha512-uchUHIewRFSWppsSckNq9TTFdmdyAk0DEyLj6kwNLZ9CRATTRG7jNpVhRDtFeBPHGPBmKOE+Ivmh5/WU3U7M5Q==","signatures":[{"sig":"MEUCICwBBMvTGILa5Gdy0ppTP7TJJMKqd7ImBxuErRdEvWtgAiEA0USzVG5TFDXzR124F1owljMbwkxPRFNNXjUkE/vE0a8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40953},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=18"},"exports":"./index.js","gitHead":"8be20475132a38eb874443051f281cc020d4dee2","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha {test,core/test}/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"10.9.8","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"22.22.3","dependencies":{"debug":"^2.6.1","undici":"6.21.3","encoding":"^0.1.13","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","husky":"^8.0.0","mocha":"^10.2.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","prettier":"2.8.4","coveralls":"^3.0.2","lint-staged":"^12.5.0","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.7.0_1780904321905_0.6973284046481647","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@caruuto/caruuto-js","version":"0.8.0","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.8.0","maintainers":[{"name":"jimlambie","email":"jameslambie@gmail.com"},{"name":"woogz","email":"jayraydon@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"92fa9a51137fc1d9864a305584d910a79ba9b177","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.8.0.tgz","fileCount":14,"integrity":"sha512-x4/Wxr1OyV6jDQDhAKsfemzx9eBxq4kOU2y5c6x7QBrYAGTcWxnP5jOAus4C/d+Gzg99DaDR7BUI7j0Q1Aj+fA==","signatures":[{"sig":"MEQCIBoHlYdgNMFYnEE35YvwCnpIg9SDlcXQENW1FZZg9ISjAiADhp2ONnELHFnDwsjUOHCD2WtEZ2QLoiOi7Trx5LWTkg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42495},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=18"},"exports":"./index.js","gitHead":"d3785a4a4792d8dcc5e92e54624619dc809f6b03","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha {test,core/test}/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"10.9.8","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"22.22.3","dependencies":{"debug":"^2.6.1","undici":"6.21.3","encoding":"^0.1.13","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","husky":"^8.0.0","mocha":"^10.2.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","prettier":"2.8.4","coveralls":"^3.0.2","lint-staged":"^12.5.0","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.8.0_1780912459953_0.32673584301127767","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@caruuto/caruuto-js","version":"0.9.0","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.9.0","maintainers":[{"name":"jimlambie","email":"jameslambie@gmail.com"},{"name":"woogz","email":"jayraydon@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"261959d4ce38a208bfe07e69993f32273de79fdc","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.9.0.tgz","fileCount":14,"integrity":"sha512-5a+LgEDy8Q2Q0NCB1NyLpMz1k60VSm6dlYEKroKKyapBdTdIAXiFqaD8jAR+qdA6amnBFXtyTGH9bWJiTB3kNg==","signatures":[{"sig":"MEUCIArDGX9VkyvN5sva/0CRDoiqWwAV29R/du7Gz23gXIP8AiEAmtl30S3cw9YAMnDJK4G12hu8vw+KGyAwno6SNUsfnyA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42885},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=18"},"exports":"./index.js","gitHead":"52bcccdddd8e9be7e57ce0b6dcbcb297a395d008","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha test/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"10.9.8","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"22.22.3","dependencies":{"debug":"^2.6.1","undici":"6.21.3","encoding":"^0.1.13","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","husky":"^8.0.0","mocha":"^10.2.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","prettier":"2.8.4","coveralls":"^3.0.2","lint-staged":"^12.5.0","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.9.0_1780967088317_0.4083252067622918","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@caruuto/caruuto-js","version":"0.9.1","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.9.1","maintainers":[{"name":"jimlambie","email":"jameslambie@gmail.com"},{"name":"woogz","email":"jayraydon@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"d47fdcbc738b9eaad816f0ed0a071e75fbe2ee6d","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.9.1.tgz","fileCount":14,"integrity":"sha512-qv+WZigSVeOLGfOiFEl2/z/VgEMklUvl9RuHCSjbIYsI3XhHVDzZu0qur/8tkx6I1EQf7q33FefT2dLy3j9yPw==","signatures":[{"sig":"MEUCIQCLexwKgSGQeVonnG8zjipvPn5+EtxuHWex+F9OB5kn/AIgRffblLuwnAxoV+T8mHLGshwR5flPWe+oZvBDKWguscs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42850},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=18"},"exports":"./index.js","gitHead":"e865d6cc072691fd5624017c5db8bdc9bf7708a6","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha test/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"10.9.8","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"22.22.3","dependencies":{"debug":"^2.6.1","undici":"6.21.3","encoding":"^0.1.13","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","husky":"^8.0.0","mocha":"^10.2.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","prettier":"2.8.4","coveralls":"^3.0.2","lint-staged":"^12.5.0","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.9.1_1780969929649_0.6649582378455015","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"@caruuto/caruuto-js","version":"0.9.3","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.9.3","maintainers":[{"name":"jimlambie","email":"jameslambie@gmail.com"},{"name":"woogz","email":"jayraydon@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"120560bba3d3cb68a8191bb657ba2134da31cc73","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.9.3.tgz","fileCount":14,"integrity":"sha512-zYrdDpMiZ3MUtJHlGBRC6X4TlXlC/DqVjk0CHR2o63VArgBWbdJg6LA2rXH6LIpuuX5yICydm+hjq5YjS/SbnA==","signatures":[{"sig":"MEQCIExz7CXwHs8UF0/a0yzi/3Bg9HOCkCv3WVfbpTSXclDWAiAjeHmxvptzc8iA+5L1f1HMDs1OLDuI6B3nNRHSHjMm9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43469},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=18"},"exports":"./index.js","gitHead":"7416691f81a565e575c4a35e13115ece470bac9d","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha test/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"10.9.8","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"22.22.3","dependencies":{"debug":"^2.6.1","undici":"6.21.3","encoding":"^0.1.13","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","husky":"^8.0.0","mocha":"^10.2.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","prettier":"2.8.4","coveralls":"^3.0.2","lint-staged":"^12.5.0","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.9.3_1781481431341_0.38320165651201954","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"@caruuto/caruuto-js","version":"0.9.4","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.9.4","maintainers":[{"name":"jimlambie","email":"jameslambie@gmail.com"},{"name":"woogz","email":"jayraydon@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"ef0041711ca1721950ff7be01369fbfd79613794","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.9.4.tgz","fileCount":14,"integrity":"sha512-yrJtDeq0jy87sW6ZqBKHmuEHl5luxmAJez3DiXHasIqNSo9VWPelMFZWYSHKrzIaCIgswbD1gzP1e9d5mw/6sA==","signatures":[{"sig":"MEUCIQDIxGvmVoQidgjWT6fQPRSi2FbcKY+8oMGceJbRb7CJugIgQCdmvMjKCrDyoSRLHUc4idiYgEgSnxxSyGR+43jo44o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43570},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=18"},"exports":"./index.js","gitHead":"26615c8e4f53cf3a26b4035c46e262dfaaebc8a8","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha test/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"10.9.8","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"22.22.3","dependencies":{"debug":"^2.6.1","undici":"6.21.3","encoding":"^0.1.13","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","husky":"^8.0.0","mocha":"^10.2.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","prettier":"2.8.4","coveralls":"^3.0.2","lint-staged":"^12.5.0","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.9.4_1781490731939_0.8017025319650102","host":"s3://npm-registry-packages-npm-production"}},"0.9.5":{"name":"@caruuto/caruuto-js","version":"0.9.5","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.9.5","maintainers":[{"name":"jimlambie","email":"jameslambie@gmail.com"},{"name":"woogz","email":"jayraydon@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"96712ba434c02c4b4b771775fb336de64c851113","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.9.5.tgz","fileCount":14,"integrity":"sha512-2SJTexrtc/SJTKRat3j9njmcSAiwlGn20bzT4PbDS2aBtme/nNwPKaaaZuw802a2wIauSItIuQ9owXKefT06Yg==","signatures":[{"sig":"MEQCIFKQhU0JnYDPOYgij6oV94W0wRBamQADrcnHJn7i46UYAiBT9Ob3lDyrL1vHsewBCsXZimL4XYfPQjPdSuQ6AiupPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44168},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=18"},"exports":"./index.js","gitHead":"46a024ede17c78aa53520999586a7f4c565bb2c8","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha test/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"10.9.8","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"22.22.3","dependencies":{"debug":"^2.6.1","undici":"6.21.3","encoding":"^0.1.13","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","husky":"^8.0.0","mocha":"^10.2.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","prettier":"2.8.4","coveralls":"^3.0.2","lint-staged":"^12.5.0","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.9.5_1781491899485_0.9107549329860463","host":"s3://npm-registry-packages-npm-production"}},"0.9.6":{"name":"@caruuto/caruuto-js","version":"0.9.6","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.9.6","maintainers":[{"name":"jimlambie","email":"jameslambie@gmail.com"},{"name":"woogz","email":"jayraydon@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"c21aa257ff4589306e03f2d14a5b969d21d3fb8f","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.9.6.tgz","fileCount":14,"integrity":"sha512-QTrl19KrY9a2m+4AQhTxYISH21zoTgxiqg77AeRhEms6M/EBTmPXB2VzkIU7K746SUaNoordtbECIQWcZmwf7w==","signatures":[{"sig":"MEUCIGVOqLAfaLA5B9Ut4cNaK5Zi34ZFxhxzUmPhlBDH5JduAiEAvyc77vCfp/OOrZs44yLd9+FmgK+tJ5hRPJfWktMLNP8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64352},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=18"},"exports":"./index.js","gitHead":"5b98b7cbd7df1e1effbdae1bab3617e7dcac7c76","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha test/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"10.9.8","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"22.22.3","dependencies":{"debug":"^2.6.1","undici":"6.21.3","encoding":"^0.1.13","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","husky":"^8.0.0","mocha":"^10.2.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","prettier":"2.8.4","coveralls":"^3.0.2","lint-staged":"^12.5.0","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.9.6_1782439901152_0.09747905269631407","host":"s3://npm-registry-packages-npm-production"}},"0.9.7":{"name":"@caruuto/caruuto-js","version":"0.9.7","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.9.7","maintainers":[{"name":"jimlambie","email":"jameslambie@gmail.com"},{"name":"woogz","email":"jayraydon@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"c420a1dea49d4eb012f0ae2788d20f163ef5671c","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.9.7.tgz","fileCount":14,"integrity":"sha512-E2zL1YDXSbweqGjin45YK93YMyOk0V2yLI0O+a+7ZqR/Mnk9yW1vNV8lpqyv7mKTekTv6h5aXRsr8yhxHxQ37Q==","signatures":[{"sig":"MEUCIQD9hUpPv0qxoV+v9RD+IutHpPSAItgKTVvWkA9s+3wwewIgDpW814014XkoWkuxAbeP6JosDPeHc21TyPRrvBgCc4I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64328},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=18"},"exports":"./index.js","gitHead":"6486af7c063984913eeb614f00e70abf0e073b5a","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha test/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"10.9.8","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"22.22.3","dependencies":{"debug":"^2.6.1","undici":"6.21.3","encoding":"^0.1.13","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","husky":"^8.0.0","mocha":"^10.2.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","prettier":"2.8.4","coveralls":"^3.0.2","lint-staged":"^12.5.0","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.9.7_1782861914915_0.7872872091154037","host":"s3://npm-registry-packages-npm-production"}},"0.9.8":{"name":"@caruuto/caruuto-js","version":"0.9.8","author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","_id":"@caruuto/caruuto-js@0.9.8","maintainers":[{"name":"jimlambie","email":"jameslambie@gmail.com"},{"name":"woogz","email":"jayraydon@gmail.com"}],"homepage":"https://github.com/Caruuto/caruuto-js","bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"dist":{"shasum":"26887108311a01f29b1bc95467bb94146bdc76ae","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.9.8.tgz","fileCount":14,"integrity":"sha512-Bm8hVM7Ad77utrIEz1YBputLLpaKgAqufuaYU/W0W2o8ctylq45ZaAXmaFo0CDK2R1K91CxUEjQnmU2Agg6SXA==","signatures":[{"sig":"MEUCIQDV6TBi9x6ePkq/caFtzEp8Ev6GP0w5o9gf8UuGiLug0gIgA+C7kAK+c21eSYNL1WVghl2laustiMifjALOqh1ljTA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64352},"husky":{"hooks":{"pre-commit":"lint-staged"}},"engines":{"node":">=18"},"exports":"./index.js","gitHead":"9a76539a0302386bcbcaf1d21cb5345d79437cad","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha test/**/*.js","posttest":"./scripts/coverage.js"},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"repository":{"url":"git+https://github.com/Caruuto/caruuto-js.git","type":"git"},"_npmVersion":"10.9.8","description":"A high-level library for interacting with Caruuto","directories":{},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"_nodeVersion":"22.22.3","dependencies":{"debug":"^2.6.1","undici":"6.21.3","encoding":"^0.1.13","query-string":"5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.0.1","husky":"^8.0.0","mocha":"^10.2.0","sinon":"^4.5.0","eslint":"8.5.0","should":"^9.0.2","prettier":"2.8.4","coveralls":"^3.0.2","lint-staged":"^12.5.0","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/caruuto-js_0.9.8_1782865931465_0.7931535528907678","host":"s3://npm-registry-packages-npm-production"}},"0.9.9":{"name":"@caruuto/caruuto-js","version":"0.9.9","description":"A high-level library for interacting with Caruuto","exports":"./index.js","scripts":{"test":"eslint --ext js,jsx . && prettier --write '**/*.{js,jsx,md,html,css}' && NODE_ENV=test mocha test/**/*.js","posttest":"./scripts/coverage.js"},"author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","dependencies":{"debug":"^2.6.1","encoding":"^0.1.13","query-string":"5.0.1","undici":"6.21.3"},"repository":{"type":"git","url":"git+https://github.com/Caruuto/caruuto-js.git"},"bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"engines":{"node":">=18"},"husky":{"hooks":{"pre-commit":"lint-staged"}},"lint-staged":{"*.{js,jsx,md,html,css}":["prettier --write","git add"]},"homepage":"https://github.com/Caruuto/caruuto-js","devDependencies":{"coveralls":"^3.0.2","eslint":"8.5.0","eslint-config-prettier":"^8.6.0","eslint-plugin-prettier":"^4.2.1","husky":"^8.0.0","lint-staged":"^12.5.0","mocha":"^10.2.0","nyc":"^15.0.1","prettier":"2.8.4","should":"^9.0.2","sinon":"^4.5.0"},"_id":"@caruuto/caruuto-js@0.9.9","gitHead":"94d053eb7c878e517dc8e56a2b1a27c7bff446e8","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-e8BYLAm7d5kr4OCukJQLTxHmFwD+4TmFvZEA4Vsj5893eS4wnPyxlisk4fi9+1kPqFpOjgGCuu9Z3xWRg41+tg==","shasum":"ed4d02cfc95cd5a9a7048be669fec243efdc56a3","tarball":"https://registry.npmjs.org/@caruuto/caruuto-js/-/caruuto-js-0.9.9.tgz","fileCount":14,"unpackedSize":65293,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIARTiH7Wb0VFwXZZvbJLNdwNffiqtcRiLXwvJnqC56AkAiBce6N8lm3FOb1gr3/Mz+tj6LF5x2+pUzd5+WjzEsNWfw=="}]},"_npmUser":{"name":"jimlambie","email":"jameslambie@gmail.com"},"directories":{},"maintainers":[{"name":"jimlambie","email":"jameslambie@gmail.com"},{"name":"woogz","email":"jayraydon@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/caruuto-js_0.9.9_1783636313288_0.6759228362525567"},"_hasShrinkwrap":false}},"time":{"created":"2023-06-07T23:25:05.856Z","modified":"2026-07-09T22:31:53.580Z","0.1.0":"2023-06-07T23:25:06.066Z","0.2.0":"2023-08-10T03:10:08.390Z","0.2.1":"2023-12-02T00:38:57.292Z","0.3.0":"2024-01-09T04:50:36.363Z","0.3.1":"2024-01-16T05:46:00.097Z","0.3.2":"2024-01-16T05:52:49.693Z","0.3.3":"2024-05-06T04:24:17.378Z","0.3.4":"2024-05-07T21:23:35.237Z","0.3.5":"2024-06-06T02:36:14.637Z","0.3.6":"2024-09-05T22:29:51.347Z","0.4.0":"2025-04-16T23:52:18.397Z","0.4.1":"2025-04-17T00:06:07.488Z","0.4.2":"2025-07-28T13:02:44.803Z","0.4.3":"2025-07-28T13:16:15.073Z","0.6.0":"2026-06-08T02:04:30.517Z","0.7.0":"2026-06-08T07:38:42.052Z","0.8.0":"2026-06-08T09:54:20.097Z","0.9.0":"2026-06-09T01:04:48.496Z","0.9.1":"2026-06-09T01:52:09.789Z","0.9.3":"2026-06-14T23:57:11.468Z","0.9.4":"2026-06-15T02:32:12.070Z","0.9.5":"2026-06-15T02:51:39.603Z","0.9.6":"2026-06-26T02:11:41.302Z","0.9.7":"2026-06-30T23:25:15.156Z","0.9.8":"2026-07-01T00:32:11.614Z","0.9.9":"2026-07-09T22:31:53.424Z"},"bugs":{"url":"https://github.com/Caruuto/caruuto-js/issues"},"author":{"name":"Jim Lambie","email":"jim@27.works"},"license":"GPL","homepage":"https://github.com/Caruuto/caruuto-js","repository":{"type":"git","url":"git+https://github.com/Caruuto/caruuto-js.git"},"description":"A high-level library for interacting with Caruuto","maintainers":[{"name":"jimlambie","email":"jameslambie@gmail.com"},{"name":"woogz","email":"jayraydon@gmail.com"}],"readme":"# Caruuto JS\n\n> The official JavaScript SDK for [Caruuto](https://caruuto.com) — a high-level client for querying content collections, sending AI chat messages, managing media, queueing email, and issuing tokens.\n\n- [Installation](#installation)\n- [Initialisation](#initialisation)\n- [Content API](#content-api)\n  - [Query filters](#query-filters)\n  - [Pagination & sorting](#pagination--sorting) (`limitTo`, `goToPage`, `afterId`)\n  - [find](#find)\n  - [create](#create)\n  - [update](#update)\n  - [delete](#delete)\n  - [getCollections](#getcollections)\n  - [syncSchema](#syncschema)\n  - [search](#search)\n- [Media API](#media-api)\n  - [uploadFile](#uploadfile)\n  - [getSignedUrl](#getsignedurl)\n- [AI extension](#ai-extension)\n  - [ai.query](#aiquery)\n  - [ai.stream](#aistream)\n  - [ai.context](#aicontext)\n  - [ai.saveTurn](#aisaveturn)\n  - [ai.endConversation](#aiendconversation)\n  - [ai.loadConversation](#ailoadconversation)\n  - [ai.forkConversation](#aiforkconversation)\n  - [ai.shareConversation](#aishareconversation)\n  - [ai.getPublicConversation](#aigetpublicconversation)\n  - [ai.trackLinkClick](#aitracklinkclick)\n- [Email extension](#email-extension)\n- [Tokens extension](#tokens-extension)\n- [Error handling](#error-handling)\n- [Custom fetch](#custom-fetch)\n\n---\n\n## Installation\n\n```bash\nnpm install @caruuto/caruuto-js\n```\n\nRequires Node.js 18 or later.\n\n---\n\n## Initialisation\n\nUse `createClient` for all production use — it returns a client with all extensions (`ai`, `email`, `tokens`) attached.\n\n```js\nconst CaruutoClient = require('@caruuto/caruuto-js')\n\nconst client = CaruutoClient.createClient(\n  'https://your-instance.caruuto.com',\n  'your-api-key'\n)\n```\n\nThe bare constructor (`new CaruutoClient(url, key)`) creates a client without extensions. Use it only when you need the Content API alone and want to avoid loading extension code.\n\n### Options\n\n```js\nCaruutoClient.createClient(url, apiKey, {\n  // Override the built-in undici fetch with your own implementation.\n  fetch: myCustomFetch,\n\n  // Properties that are stripped before create/update calls.\n  // Defaults to ['created_at', 'created_by', 'updated_at', 'updated_by', 'v'].\n  reservedProperties: ['_id', 'created_at']\n})\n```\n\n---\n\n## Content API\n\nThe Content API follows a chainable builder pattern. Filter methods set state on the client and return `this`; a terminator (`find`, `create`, `update`, `delete`) fires the request and returns a Promise. The state is reset automatically after each request.\n\n```js\n// Collection → filter → terminator\nconst result = await client\n  .in('articles')\n  .whereFieldIsEqualTo('status', 'published')\n  .limitTo(10)\n  .sortBy('published_at', 'desc')\n  .find()\n```\n\n### Query filters\n\nAll filter methods return `this` and can be chained freely.\n\n#### `in(collection)`\n\nSelect the target collection.\n\n```js\nclient.in('products')\n```\n\n#### `where(query)`\n\nPass a raw MongoDB-style query object directly.\n\n```js\nclient.where({ status: 'active', price: { $gt: 100 } })\n```\n\n#### `whereFieldIsEqualTo(field, value, caseInsensitive?)`\n\nExact match. Pass `true` as the third argument for a case-insensitive match.\n\n```js\nclient.whereFieldIsEqualTo('slug', 'hello-world')\nclient.whereFieldIsEqualTo('email', 'user@example.com', true)\n```\n\n#### `whereFieldIsNotEqualTo(field, value)`\n\nNegated match. Strings produce a case-insensitive regex negation; numbers use `$ne`.\n\n```js\nclient.whereFieldIsNotEqualTo('status', 'archived')\n```\n\n#### `whereFieldIsGreaterThan(field, value)`\n\n```js\nclient.whereFieldIsGreaterThan('price', 50)\n```\n\n#### `whereFieldIsGreaterThanOrEqualTo(field, value)`\n\n```js\nclient.whereFieldIsGreaterThanOrEqualTo('stock', 1)\n```\n\n#### `whereFieldIsLessThan(field, value)`\n\n```js\nclient.whereFieldIsLessThan('age', 18)\n```\n\n#### `whereFieldIsLessThanOrEqualTo(field, value)`\n\n```js\nclient.whereFieldIsLessThanOrEqualTo('score', 100)\n```\n\n#### `whereFieldContains(field, value)`\n\nCase-insensitive substring match (`/value/i`).\n\n```js\nclient.whereFieldContains('title', 'caruuto')\n```\n\n#### `whereFieldBeginsWith(field, value)`\n\nCase-insensitive prefix match (`/^value/i`).\n\n```js\nclient.whereFieldBeginsWith('slug', 'product-')\n```\n\n#### `whereFieldEndsWith(field, value)`\n\nCase-insensitive suffix match (`/value$/i`).\n\n```js\nclient.whereFieldEndsWith('email', '@example.com')\n```\n\n#### `whereFieldDoesNotContain(field, value)`\n\nNegated substring match.\n\n```js\nclient.whereFieldDoesNotContain('title', 'draft')\n```\n\n#### `whereFieldExists(field)`\n\nMatch documents where the field is not null.\n\n```js\nclient.whereFieldExists('publishedAt')\n```\n\n#### `whereFieldDoesNotExist(field)`\n\nMatch documents where the field is null or absent.\n\n```js\nclient.whereFieldDoesNotExist('deletedAt')\n```\n\n#### `whereFieldIsOneOf(field, values)`\n\n`$in` — field value must be one of the provided array.\n\n```js\nclient.whereFieldIsOneOf('category', ['news', 'opinion'])\n```\n\n#### `whereFieldIsNotOneOf(field, values)`\n\n`$nin` — field value must not appear in the provided array.\n\n```js\nclient.whereFieldIsNotOneOf('status', ['draft', 'archived'])\n```\n\n### Pagination & sorting\n\nTwo pagination modes are available: offset-based (page/limit) and cursor-based (`afterId`). They are mutually exclusive — when `afterId` is set the server ignores `goToPage`.\n\n#### `limitTo(n)`\n\nLimit the number of returned documents. Works with both pagination modes.\n\n```js\nclient.in('posts').limitTo(20).find()\n```\n\n#### `goToPage(n)`\n\nSelect a page (1-indexed, offset-based). Works together with `limitTo`. **Not compatible with `afterId`** — the server ignores page when a cursor is active.\n\n```js\nclient.in('posts').limitTo(20).goToPage(3).find()\n```\n\n#### `afterId(id)`\n\nCursor-based pagination. Pass the `id` of the last document from the previous page to fetch the next page. This is the required pagination mode for the `members` collection and will be supported by other content types.\n\nWhen an `afterId` cursor is active the response includes both `count` (documents on this page) and `totalCount` (total across all pages).\n\n```js\n// First page — no cursor\nconst page1 = await client.in('members').limitTo(50).find()\nconst lastId = page1.results.at(-1).id\n\n// Next page — pass the last ID as the cursor\nconst page2 = await client.in('members').limitTo(50).afterId(lastId).find()\n```\n\n#### `sortBy(field, order)`\n\nSort on a field. `order` is `'asc'` (default) or `'desc'`.\n\n```js\nclient.in('posts').sortBy('published_at', 'desc').find()\n```\n\nMultiple sorts can be chained:\n\n```js\nclient\n  .in('posts')\n  .sortBy('category', 'asc')\n  .sortBy('published_at', 'desc')\n  .find()\n```\n\n#### `useFields(fields)`\n\nRestrict the fields returned. Pass an array of field names.\n\n```js\nclient.in('articles').useFields(['title', 'slug', 'excerpt']).find()\n```\n\n#### `useVersion(version)`\n\nOverride the API version for this request. Defaults to `'v1'`.\n\n```js\nclient.in('articles').useVersion('v2').find()\n```\n\n---\n\n### find\n\nRetrieve documents matching the current query state.\n\n```js\nconst result = await client\n  .in('articles')\n  .whereFieldIsEqualTo('status', 'published')\n  .find()\n\n// result.results — array of documents\n// result.metadata — pagination info (when extractMetadata is true)\n```\n\nPass `{ extractMetadata: true }` to also fetch document count and pagination metadata:\n\n```js\nconst result = await client\n  .in('articles')\n  .limitTo(10)\n  .find({ extractMetadata: true })\n\n// result.metadata.totalCount\n// result.metadata.totalPages\n```\n\n---\n\n### create\n\nCreate one or more documents in a collection. Reserved properties (`created_at`, `updated_at`, etc.) are stripped automatically.\n\n```js\n// Single document\nconst doc = await client.in('articles').create({\n  title: 'Hello World',\n  status: 'published'\n})\n\n// Multiple documents\nconst docs = await client.in('articles').create([\n  { title: 'Post One' },\n  { title: 'Post Two' }\n])\n```\n\n---\n\n### update\n\nUpdate documents matching the current query. A query **must** be set before calling `update`.\n\n```js\nawait client\n  .in('articles')\n  .whereFieldIsEqualTo('_id', '64a1b2c3d4e5f6a7b8c9d0e1')\n  .update({ status: 'archived' })\n```\n\n---\n\n### delete\n\nDelete documents matching the current query. A query **must** be set before calling `delete`.\n\n```js\nawait client\n  .in('articles')\n  .whereFieldIsEqualTo('status', 'draft')\n  .delete()\n```\n\n---\n\n### getCollections\n\nReturn the list of all content type definitions registered in the Caruuto instance.\n\n```js\nconst collections = await client.getCollections()\n```\n\n---\n\n### syncSchema\n\nSync a collection's schema definition with the server. Useful for automated schema migrations.\n\n```js\nawait client.in('articles').syncSchema({\n  fields: [\n    { key: 'title', type: 'String', required: true },\n    { key: 'body', type: 'String' }\n  ]\n})\n```\n\n---\n\n### search\n\nFull-text search across a collection.\n\n```js\nconst results = await client\n  .in('articles')\n  .search({ phrase: 'caruuto headless' })\n  .find()\n```\n\n---\n\n## Media API\n\n### uploadFile\n\nUpload a file to the project's media bucket. The storage bucket is resolved server-side from the API key.\n\n```js\nconst fs = require('fs')\n\nconst buffer = fs.readFileSync('/path/to/image.png')\n\nconst result = await client.uploadFile(\n  'images/avatars',   // directory within the bucket\n  'avatar.png',       // file name\n  'image/png',        // MIME type\n  buffer,             // Buffer or ArrayBuffer\n  buffer.byteLength   // content length in bytes\n)\n```\n\n---\n\n### getSignedUrl\n\nObtain a signed URL for a direct client-side upload (e.g. from a browser).\n\n```js\nconst { url, fields } = await client.getSignedUrl({\n  fileName: 'photo.jpg',\n  mimeType: 'image/jpeg',\n  directory: 'uploads'\n})\n```\n\n---\n\n## AI extension\n\nThe AI extension is available on clients created with `createClient`. All methods are on `client.ai`.\n\n---\n\n### ai.query\n\nSend a message and receive a single blocking response from the AI.\n\n```js\nconst response = await client.ai.query({\n  message: 'What are your opening hours?'\n})\n\nconsole.log(response.answer)\nconsole.log(response.conversation_id) // use to continue the conversation\n```\n\n**Options**\n\n| Parameter | Type | Required | Description |\n|---|---|---|---|\n| `message` | string | Yes | The user's message |\n| `projectId` | string | No | Caruuto project UUID. Not required when authenticating with an API key (the key's project is used). |\n| `conversationId` | string | No | Continue an existing conversation |\n| `clientSessionId` | string | No | Anonymous user token for session continuity |\n| `source` | string | No | `'widget'`, `'api'`, or `'embed'` |\n| `referrerUrl` | string | No | URL where the chat widget is embedded |\n| `utmSource` | string | No | UTM source from the page URL |\n| `utmMedium` | string | No | UTM medium from the page URL |\n| `utmCampaign` | string | No | UTM campaign from the page URL |\n| `utmTerm` | string | No | UTM term from the page URL |\n| `utmContent` | string | No | UTM content from the page URL |\n| `leadEmail` | string | No | Capture a lead email on this turn |\n| `leadName` | string | No | Lead name (used together with `leadEmail`) |\n| `type` | string | No | Restrict knowledge retrieval to a single type |\n| `maxItems` | number | No | Maximum knowledge items to retrieve (1–10) |\n\n**Response**\n\n```js\n{\n  answer: string,\n  conversation_id: string,\n  context: [],        // knowledge items used\n  entities: [],       // entities detected\n  _meta: {},\n  from_cache: boolean // present when the answer was served from cache\n}\n```\n\n---\n\n### ai.stream\n\nSend a message and receive a streaming response. Returns an async generator — iterate with `for await`.\n\n```js\nfor await (const chunk of client.ai.stream({ message: 'Tell me about your products' })) {\n  if (chunk.type === 'text') {\n    process.stdout.write(chunk.text)\n  } else if (chunk.type === 'done') {\n    console.log('\\nconversation_id:', chunk.conversation_id)\n  }\n}\n```\n\nYields two event types:\n\n| `type` | Fields | Description |\n|---|---|---|\n| `'text'` | `text: string` | A token or token batch from the LLM |\n| `'done'` | `conversation_id`, `context`, `entities`, `_meta`, `from_cache?` | Final event, mirrors `query()` response fields |\n\nAccepts the same options as [`ai.query`](#aiquery).\n\n---\n\n### ai.context\n\nRetrieve the assembled context for a message **without** calling the LLM. Use this when you want to drive your own LLM call (e.g. with the AI SDK) and need Caruuto to handle retrieval, entity detection, and prompt assembly.\n\n```js\nconst ctx = await client.ai.context({\n  message: 'What are your pricing tiers?',\n  conversationId: existingConversationId\n})\n\nif (ctx.from_cache) {\n  // serve the cached answer directly\n  return ctx.cached_answer\n}\n\n// ctx.system_prompt — ready to pass to your LLM\n// ctx.history       — prior conversation turns\n// ctx.context       — knowledge items\n// ctx.entities      — detected entities\n// ctx.conversation_id\n```\n\nAccepts the same options as [`ai.query`](#aiquery) (excluding `leadEmail`/`leadName`).\n\n---\n\n### ai.saveTurn\n\nPersist a completed turn (user message + assistant response) after your own LLM call. Call this once your stream is complete with the full response text and token usage.\n\n```js\nawait client.ai.saveTurn({\n  conversationId: ctx.conversation_id,\n  userContent: 'What are your pricing tiers?',\n  assistantContent: fullAssistantText,\n  modelId: 'claude-sonnet-4-6',\n  inputTokens: 512,\n  outputTokens: 128,\n  cachedTokens: 0,\n  contextItems: ctx.context,\n  entitiesReferenced: ctx.entities.map(e => e.id)\n})\n```\n\n**Options**\n\n| Parameter | Type | Required | Description |\n|---|---|---|---|\n| `conversationId` | string | Yes | From `context()` or a prior `query()` response |\n| `userContent` | string | Yes | The user's message text |\n| `assistantContent` | string | Yes | The full assistant response text |\n| `projectId` | string | No | Not required when authenticating with an API key |\n| `modelId` | string | No | Model identifier (e.g. `'claude-sonnet-4-6'`) |\n| `inputTokens` | number | No | |\n| `outputTokens` | number | No | |\n| `cachedTokens` | number | No | |\n| `fromCache` | boolean | No | Set `true` when `assistantContent` came from a `context()` cache hit |\n| `contextItems` | object[] | No | Knowledge items from `context()` response |\n| `entitiesReferenced` | string[] | No | Entity IDs from `context()` response |\n| `leadEmail` | string | No | |\n| `leadName` | string | No | |\n\n**Response**\n\n```js\n{ ok: boolean, turn_count: number }\n```\n\n---\n\n### ai.endConversation\n\nExplicitly end a conversation, marking its status as `'ended'`. Call this when the user closes the chat widget or navigates away.\n\n```js\nconst summary = await client.ai.endConversation({\n  conversationId: 'conv_abc123'\n})\n\n// summary.id\n// summary.status         → 'ended'\n// summary.turn_count\n// summary.total_tokens\n// summary.started_at\n// summary.ended_at\n```\n\n---\n\n### ai.loadConversation\n\nLoad a conversation and its messages formatted as AI SDK `UIMessage` objects. Use this to restore a prior conversation into your chat UI.\n\n```js\nconst conversation = await client.ai.loadConversation({\n  conversationId: 'conv_abc123'\n})\n\n// conversation.id\n// conversation.status\n// conversation.turn_count\n// conversation.started_at\n// conversation.ended_at\n// conversation.messages   ← UIMessage[]\n```\n\n---\n\n### ai.forkConversation\n\nFork an existing conversation or question-cache entry into a new conversation. Returns the new conversation ID.\n\n```js\nconst { id } = await client.ai.forkConversation({\n  sourceId: 'conv_abc123',\n  source: 'conversation'    // 'conversation' (default) | 'question_cache'\n})\n```\n\n---\n\n### ai.shareConversation\n\nSet a conversation's visibility to `'public'` or `'private'`. Public conversations are accessible via a share URL without authentication.\n\n```js\nconst result = await client.ai.shareConversation({\n  conversationId: 'conv_abc123',\n  visibility: 'public'\n})\n\n// result.id\n// result.visibility\n// result.share_url\n```\n\n---\n\n### ai.getPublicConversation\n\nFetch a publicly shared conversation **without authentication**. Returns `null` if the conversation is private or not found.\n\n```js\nconst conversation = await client.ai.getPublicConversation({\n  conversationId: 'conv_abc123'\n})\n\nif (!conversation) {\n  // private or not found\n}\n\n// conversation.id\n// conversation.turn_count\n// conversation.started_at\n// conversation.ended_at\n// conversation.messages\n```\n\n---\n\n### ai.trackLinkClick\n\nRecord a click on a link surfaced in an assistant response. Powers the CTA-click and conversion panels in the analytics dashboard.\n\n```js\nawait client.ai.trackLinkClick({\n  conversationId: 'conv_abc123',\n  url: 'https://example.com/pricing',\n  linkLabel: 'View pricing',\n  messageIndex: 2\n})\n```\n\n**Options**\n\n| Parameter | Type | Required | Description |\n|---|---|---|---|\n| `conversationId` | string | Yes | The conversation the link appeared in |\n| `url` | string | Yes | The full clicked URL, exactly as rendered |\n| `projectId` | string | No | Not required when authenticating with an API key |\n| `linkLabel` | string | No | The link's visible text |\n| `messageIndex` | number | No | Zero-based index of the assistant message the link appeared in |\n\n**Response**\n\n```js\n{ ok: boolean }\n```\n\n---\n\n## Email extension\n\nManage email records via `client.email`. All methods return a Promise.\n\n### `email.find(query)`\n\nRetrieve email records matching the given query.\n\n```js\nconst result = await client.email.find({ status: 'queued' })\n```\n\n### `email.queue(data)`\n\nQueue an email for sending.\n\n```js\nawait client.email.queue({\n  to: 'user@example.com',\n  subject: 'Welcome',\n  templateId: 'welcome-v1'\n})\n```\n\n### `email.update(data)`\n\nUpdate an existing email record.\n\n```js\nawait client.email.update({ id: 'email_123', status: 'cancelled' })\n```\n\n### `email.delete(data)`\n\nDelete an email record.\n\n```js\nawait client.email.delete({ id: 'email_123' })\n```\n\n---\n\n## Tokens extension\n\nIssue and verify short-lived tokens via `client.tokens`. Also accessible as top-level methods `client.createToken()` and `client.verifyToken()`.\n\n### `tokens.create(data)` / `createToken(data)`\n\nCreate a new token.\n\n```js\nconst token = await client.tokens.create({ userId: 'user_abc', scope: 'reset' })\n// or\nconst token = await client.createToken({ userId: 'user_abc', scope: 'reset' })\n```\n\n### `tokens.verify(token)` / `verifyToken(token)`\n\nVerify a token string.\n\n```js\nconst result = await client.tokens.verify('tok_abc123')\n// or\nconst result = await client.verifyToken('tok_abc123')\n```\n\n---\n\n## Error handling\n\nAll terminator and extension methods return Promises. Failed requests (HTTP 4xx/5xx) reject with an `Error` object that carries additional properties:\n\n```js\ntry {\n  await client.in('articles').whereFieldIsEqualTo('_id', 'bad-id').find()\n} catch (err) {\n  console.error(err.message) // message from the API response body, if present\n  console.error(err.status)  // HTTP status code\n  console.error(err.errors)  // validation errors array, if present\n}\n```\n\n---\n\n## Custom fetch\n\nBy default the SDK uses [undici](https://github.com/nodejs/undici)'s `fetch`. Pass your own implementation via the `fetch` option to use a different HTTP client, add middleware, or enable instrumentation:\n\n```js\nconst client = CaruutoClient.createClient(url, apiKey, {\n  fetch: (url, options) => {\n    console.log('→', options.method, url)\n    return globalThis.fetch(url, options)\n  }\n})\n```\n\nThe custom fetch function receives the same `(url, init)` arguments as the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) and must return a `Response`-compatible object.\n","readmeFilename":"README.md"}