{"_id":"@smartsamurai/krapi-sdk","_rev":"50-0f1fb035788b2860c4a828c018bd4b76","name":"@smartsamurai/krapi-sdk","dist-tags":{"latest":"0.6.1"},"versions":{"0.1.0":{"name":"@smartsamurai/krapi-sdk","version":"0.1.0","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"MIT","_id":"@smartsamurai/krapi-sdk@0.1.0","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/GenorTG/Krapi#readme","bugs":{"url":"https://github.com/GenorTG/Krapi/issues"},"dist":{"shasum":"22f8cc92690e3073b776bc0d3fc8e19d11f26c0e","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.1.0.tgz","fileCount":20,"integrity":"sha512-/MKBA7kUfaMBoTGP28hz4PzqAS8bNZY4RsoZyYMhPEzYc3QyILUieIkJt+9zbDFV+6GzUP908QWU/KR7lYnWdg==","signatures":[{"sig":"MEQCIGGsYbKHVnV7Y0U8Xi4AwbBAz6V34pNgUmvx4Qeojpz5AiBwpPR/RkkrXymoBLGCGyYoLzSZ/De2pq27cpSzc0FU5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2611845},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"c3e8a20a4e568d5a0faaf76f37d59a1c1687650a","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","prepublishOnly":"npm run security-check && npm run build && npm run type-check","security-check":"npm audit --audit-level=moderate && npm outdated"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/GenorTG/Krapi.git","type":"git","directory":"packages/krapi-sdk"},"_npmVersion":"10.9.0","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"22.12.0","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.1.0_1762705473634_0.9027189742021786","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@smartsamurai/krapi-sdk","version":"0.1.1","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"MIT","_id":"@smartsamurai/krapi-sdk@0.1.1","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/GenorTG/Krapi#readme","bugs":{"url":"https://github.com/GenorTG/Krapi/issues"},"dist":{"shasum":"2a8582f16f18d46dbb699f92acee25c37122946d","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.1.1.tgz","fileCount":20,"integrity":"sha512-dHcEtYC6HakkhtF2NBVXRyD4U8U6FUYsjTOSZP4jpF/aJSMUCtU3E/Ihe7r+DZZyVBvVSJ5qh7/EvrmeAF4RIg==","signatures":[{"sig":"MEQCIDg6wAUOPRy+o8sBoVNCKFBRbdhvG+qp+N+JfQc4hn7xAiAabikjCulHGCwOtx+eHzOSHfPvh7hZWGDxmVDZXk8Ucw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2611951},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"1ceafb58bf023fe3ae0b1bdd04115b20bfa2c9c6","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run type-check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/GenorTG/Krapi.git","type":"git","directory":"packages/krapi-sdk"},"_npmVersion":"10.9.0","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"22.12.0","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.1.1_1762788462710_0.009173813156155841","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@smartsamurai/krapi-sdk","version":"0.1.2","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.1.2","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"3b0c8129efda19805ff8cc1c4ecd393b62400f12","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.1.2.tgz","fileCount":21,"integrity":"sha512-UeYH1MP3lCOTjzprdlMkF62hdVDgpWhEEdczO7RgPuxutySg5e2DsbhwbtsXl7ShG82hCi2MeCXKlpZeTMMFCg==","signatures":[{"sig":"MEQCIEj1Mc4P2kgf7CJoG78eZeLABKGnbM10hvckgpIieFNKAiBLxGxPTxPjNDq/0oP+uHWNxsfM3VVnFrJ0z4qIVrdk5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2614660},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"a8b40b104d25385b3bd50fe90527052bfdff63e8","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run type-check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.9.0","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"22.12.0","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.1.2_1762880556845_0.44119298267335716","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@smartsamurai/krapi-sdk","version":"0.1.3","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.1.3","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"bc797717d6127be385a4aadfea7c490a1cfaf051","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.1.3.tgz","fileCount":14,"integrity":"sha512-BMhM8Fj8GG33ebqbQz+aM0FvTMYOaLefVuBkYPBkFrlVLMdjGDw7cvpq/AzPZsz+LuJGO9P1Dpdsr/FyJo1PCg==","signatures":[{"sig":"MEUCIQCRUmcusEBW7lqz3+60h74DRMElJ+8S0xVJmd6kA9cmMQIgZqwt7yrNXrwLKrxcgGqdcP9O4l711adZ2amMWqiBxa4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2319436},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"445715eba750c022774125d376bf9b376326bb22","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run type-check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.1.3_1762891660338_0.915582625949314","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@smartsamurai/krapi-sdk","version":"0.1.4","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.1.4","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"419561330965d285671b9223dadce89310fce8de","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.1.4.tgz","fileCount":14,"integrity":"sha512-VfQVgy+rZmFPtOX6dV2VfPDo/3ZhBF3tEs6JiiWqjQB7TOPO2kl6m5q/rjOnTaMgIAZz/nuAd6cmhqDzrt1U/Q==","signatures":[{"sig":"MEUCIHZFBTQFkqPo9qPRuiOKXIUTgeTsf/BP1dWSeH76vttTAiEAhGzNM2C6Y+nlTOw5rZN9E919IKy3N3bwKvpKkmZrdOE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2323573},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"984ed7e45eb5c3220777566d8b1a28a13b9ca91b","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run type-check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.1.4_1762930460515_0.3802890985256637","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@smartsamurai/krapi-sdk","version":"0.1.5","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.1.5","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"0dea1b6ea40837d86d9026cb9700034cc1f9913e","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.1.5.tgz","fileCount":14,"integrity":"sha512-E/5PKUX8TqJkefAdfK1p16gfj7zDmTQO52hoVvBmJGGYg7BDiqp6Ilpn76d/QSw6gC6XbhERBY4AbkbwsXJwCg==","signatures":[{"sig":"MEQCIDcI1OpZx9TUYiTnBG7/mdmfIiGNShqLt+8RP3VzOkoYAiAlh0FBVaNsehrpm7XhTEEA3zASzAG4sQC0COxEGOGQxg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2329446},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"f9eca0e1520e614f061a9457184d7b1b25ec5853","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run type-check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.1.5_1762933326968_0.24519538060752977","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@smartsamurai/krapi-sdk","version":"0.1.6","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.1.6","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"ecddca2ceb64de19719c30ef644c5bed412a7015","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.1.6.tgz","fileCount":14,"integrity":"sha512-ADcCpjWkvz2A9ZCalCwl8eIr6iK3kL7DvTe3cuHx9+g2pYMZJtq4yGN6QvKoyOmnRmoahu3FJ/+gp1EiOjOwlQ==","signatures":[{"sig":"MEUCIFa/hWlQPfCJtaZ810BnmxG+hLLopb0yX8RrdgWtuXQbAiEAyiqPl6lDy9RQk6gREe161ESDwyW2nEBWWkhuBKLde+E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2344660},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"f8d814df94daf9410ff72642260d765f8a061fa6","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run type-check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.1.6_1762940495425_0.16174695658503624","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@smartsamurai/krapi-sdk","version":"0.1.7","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.1.7","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"1e6c2a1ebc8b83c68b13d2c350025879b241d17f","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.1.7.tgz","fileCount":14,"integrity":"sha512-Hi8BSMWEMFigB6kEmzp8k4vvP9dNKhAf8MQDh0TRpHSlxbpqZ0y1XIMedUh4fc9VKJv2IQI45lOIPfLQSZgUHA==","signatures":[{"sig":"MEYCIQDmEHP7SeOwJokuPGq0ms8MPoZ038teQqJG7PP7DmVeBQIhAOF47vH5bw1BYtEGUxsdW+WSkgAz95QYfqNWvh9fa39x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2365872},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"33f2d07810eb6b37cc1898b74c808e990ba9f854","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run type-check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.1.7_1762945927795_0.2668878391691307","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@smartsamurai/krapi-sdk","version":"0.1.8","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.1.8","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"29665d59a5e5bcec39d8579ac281ffe6e7ce17df","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.1.8.tgz","fileCount":14,"integrity":"sha512-BsddVGibfMOLctrYbdCam45rrhliuOhprzwUbAf80FoFSj4H8lp8D3N/kL2j8H75Y+6T9IBcmMo+RsA0U6Go+Q==","signatures":[{"sig":"MEUCIDEa76jF1XkOkshi8ProTp+PzG2T6ifZ5aPjNr2DwKx+AiEA26tH7pVrVz11X1hZj85yKICc1ySt/JGtRYM5QtNgt7U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2366651},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"cf80307365f590ad305a9102a9793670becf508c","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.1.8_1762947378949_0.5232404963267943","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@smartsamurai/krapi-sdk","version":"0.1.9","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.1.9","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"5acc2fa2a9d4977be9f93fe5b4dc3b53516873b5","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.1.9.tgz","fileCount":14,"integrity":"sha512-WP5gXibTQ3ba9QkfPGR7pnKUblhVn7ERItTknh15Inf8htXtGk4TsqQhGk7QsgSe3qm1/6+C9M4RbPcbFeXVDw==","signatures":[{"sig":"MEUCIDgblwOGbl+0EdKwJn3xl35t56R87wKVbDGIdfwIC0RgAiEA//vBaU2TTVcDYSWnrNEru80JEDM9+7dcvg++DkGYUZQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2399784},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"67f5a24feef1fbe97d238b2f8989e2268a4aff5e","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.1.9_1762951504817_0.9584427350490949","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@smartsamurai/krapi-sdk","version":"0.1.10","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.1.10","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"a035c8db357aacb2e45e5b5eb3ed9f54286dadba","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.1.10.tgz","fileCount":14,"integrity":"sha512-WV+imQTL199wUxhrlk8DroAHrjHt/CyQ0BeQ5Ay3Nt+YregvqnNhzXjOJdlvKsJF3ohpo6I9Guzx6hGP8L4HfA==","signatures":[{"sig":"MEYCIQCHTz3qDHjCR+ZnOMN+ea2IuMIf5YwcK/WZVtll2oULGgIhANMgkoP6kSCj2NwZtK5YeI55retyt1G01jjb2X/8jyJt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2400669},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"90d753ed5f828e6c2e554e34fa5f25c7df879a2b","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.1.10_1762954156286_0.05805511540333619","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@smartsamurai/krapi-sdk","version":"0.1.11","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.1.11","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"f05ced94d0e29e58d10ae62ef117bef44b63bb87","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.1.11.tgz","fileCount":14,"integrity":"sha512-YUvnP1miUhLD3RGHOflMuNj6TVI1/L4r4z712mA1vxJV9pzoWVdihXIr1CtfKNE/c17OUSxbuqsq9NmgPjzVNw==","signatures":[{"sig":"MEQCIFFi0DxbaOcJir/vsU1W7QDOx1mcGkcQOkokge10+cWMAiBwyYGcyS2eqtBleDskQYXKYxGVnsWForwZz69EpPepPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2437243},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"30195162cc07b909ce0fe53a2263b542b9d73463","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.1.11_1763030742136_0.4518995349362067","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@smartsamurai/krapi-sdk","version":"0.2.0","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.2.0","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"83614473c96c598fb5d090fcac4dca9d67239111","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.2.0.tgz","fileCount":14,"integrity":"sha512-oNlR5LxYjQR39cK6jYpXyxHlVYznL1cFBqNumJ/zaQ2JlIVb2Lh7uGvYDQpur5WW5VsoOhoivDruTXKbmnZDKg==","signatures":[{"sig":"MEQCIGgG8a0qd02iozz3vyF22YJkSqe6jEKCVVhFHjwSuddwAiBTSI+P7SqbEfDzrp5nXrgSQGa36NhpnqW4QultGdTeeg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2674493},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"6f1f933e5b54a9327a3b580ae551c9ee969213c8","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.2.0_1763649832061_0.2475247394079687","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@smartsamurai/krapi-sdk","version":"0.2.1","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.2.1","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"3599987b4bc6789fcd1a0239ec6f60080435d20e","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.2.1.tgz","fileCount":14,"integrity":"sha512-w8wjhk154o5SH1btgXZuoazDBW/BwxsoPAtYJb5ZDpYlbt01tAMYg8oDV94lShDUhHP+oqrrSzIoVzZp+O/6dQ==","signatures":[{"sig":"MEUCIQD1P6OdttGheDImIroAjNM/m+DGvGCNcG/p7zA4d0aBRAIgDwc2fIytkiKNYuGmotY0Av/yjRzxX+aXgCunVxwKjCA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2678662},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"c46da510ba40aaf9a70c0793aa70541a62c792ed","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.2.1_1763824901079_0.23580298028384528","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@smartsamurai/krapi-sdk","version":"0.2.2","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.2.2","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"4b2292155950bef8affa79014b693ab093d6078b","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.2.2.tgz","fileCount":14,"integrity":"sha512-nOkb/iOKGEwstHZoEKTPbschVlYvV+t/84WPW6lZN+IKfqc0X3I+3zilCUHBLgkyZEc1BRTxFIxgWFPTu8T3ng==","signatures":[{"sig":"MEYCIQDDrNnsJvnY+YfASxiz+rpPFnZ7YulkgGHv1U+gvL9XBgIhAM+fnegoYt+B6SdwFxg243j2a6XUfr2LIbDblhUG8zmh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2690405},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"f2aed4a392ec44dc65de71a983a7dbbee5d1ae6c","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.2.2_1763831927842_0.6006014087178431","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@smartsamurai/krapi-sdk","version":"0.3.0","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.3.0","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"c716a0edb4a1a7d40a53d8fa38c984b5927a3339","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.3.0.tgz","fileCount":14,"integrity":"sha512-kU9enB3znS0qgBxWQPnWNeWYxF/L6B6EpcbZFRwKf/KsLjr1bsyAmWYIFQhQuCls/1ryvPUljoUCzvmX6hq7bA==","signatures":[{"sig":"MEYCIQDEUb1+C8R2mbTehxv4e7TSvDFLfwfuh7mdbPJKJb7geAIhAOlCv9s+o1IT5gEjtXhAYjgrA7YZWPFWK5xa4klHue+s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2697227},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"7b4ad18e3a1b1fa08e73d22a0ef8288cca6e2d03","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.3.0_1763848751041_0.7366686096817434","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@smartsamurai/krapi-sdk","version":"0.3.1","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.3.1","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"77bd94a6794cee86eeff348b07f7c60c282455c2","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.3.1.tgz","fileCount":14,"integrity":"sha512-yUNSGBAu2pYEGjc1ROXXDsEwWidy/3dGWEIsautOoyOuZrJrKrg8624uPa56/QnzdK6ES6Wt5QlfYEir7/nasQ==","signatures":[{"sig":"MEUCIQDv0Eim1UBgp+5BzEhJv510WoDvMqV+F0C7HUX9dKmPtgIgRdl9Svu+1zA3oPaehV9ms3LNVsvG3FsuUcvN2SgPYEk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2706373},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"b5d3b9948511e6ecf79790dbdda6a01b5aa77b30","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.3.1_1763893270711_0.19038132264555196","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@smartsamurai/krapi-sdk","version":"0.3.2","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.3.2","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"bfd9e0086eb4d07fdb0e25c456e8d0523f0582ad","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.3.2.tgz","fileCount":14,"integrity":"sha512-cRPAg5mDMcWpvwLX1PV1mhgQWTqKemK9NYSwqBicXOOUfLRu0qdw5G/xCgRW1HC+KJ6+Xs9Xs+v8A4q+UYUFOw==","signatures":[{"sig":"MEQCIEEXO3agddzWbYTOWBbTIQKBxAgFQYLdxW9MjLUdHjIaAiAGuf5ARocMynmtpbzJ0ufjpg6L4mkuzLhD0ozTL4xnmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2714239},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"96ec6ab823f81363de8b7457245047b67136ea50","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.3.2_1763894741849_0.14762279577411785","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@smartsamurai/krapi-sdk","version":"0.3.3","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.3.3","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"0c27b8eb0be8e284a77875f37714f83f3954c0be","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.3.3.tgz","fileCount":14,"integrity":"sha512-nEBbiIpSHO31YMKR0KSdFjPSFm0YjcwZ7UJWiuGqOQ8p7gokFYiXdgK7NSu1BK1V/az0kvnaCviUSHuSDi3P1A==","signatures":[{"sig":"MEYCIQD+Bgh7De/CxPLsMrPTvboKSwdl+BMm1c911tFogYQZXQIhAMrdCFVFDPE8y7zyva//xIRFfGeOm23yZ7f2pBbaVUyt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2720349},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"b234cbf220a467f653f6820e0ad92e2ce83fa27e","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.3.3_1763926004768_0.11503215278957613","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@smartsamurai/krapi-sdk","version":"0.3.4","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.3.4","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"728428aa0ace0d7f9d9f6ddb881b7d1d5255a12e","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.3.4.tgz","fileCount":14,"integrity":"sha512-xacVCZAIS+SLew4JAbGaSfV351R5yVk2C5oOzKUvlP7Eq8+SWrppXdfOmBkjBt8coO3XbanWP4Ozu1LQWwO6nA==","signatures":[{"sig":"MEQCIAyKRSN0SWCx2KltEkXG8emyEIEmXOiihIOYyoBScK3ZAiAjQCod+iZZ4B4VwpiHIR824JHz4WFBiwZUd0bIWuMA2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2720571},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"88ceeacec3d1b46cbe766a97e53b322a736f0ab2","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.3.4_1763930204297_0.546571969993787","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@smartsamurai/krapi-sdk","version":"0.3.5","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.3.5","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"c6002c0c133a0a38e02f039e621c6e6f9b2e9cbb","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.3.5.tgz","fileCount":14,"integrity":"sha512-lUtpNfVwbIzMkIiTWgo+oCzEeRuB+64W5UaRq2mEp4Xt2Rf2VxE9wPWc2tJ99rOS3bU+JeA+gCurQ+JGYMHg7Q==","signatures":[{"sig":"MEYCIQC7G9qnBmJxeQ8QLxe7F4HcMjw0dqiHqWfVxSlDWVVY3wIhAKdV1jZQVMNOr/nRFoU05UbRMvDLwB/6PyMe2gG1F0ig","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2725306},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"01c36cecfc1e86e6e414fd853b903270af6aafe5","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.3.5_1763978437315_0.40149113706221584","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@smartsamurai/krapi-sdk","version":"0.3.6","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.3.6","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"a84074b406ac350722f73af527825426b5cded9f","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.3.6.tgz","fileCount":14,"integrity":"sha512-x6LZzL3MPrPgYlxDcpkri3DnqIFPk7qB2B6fXzt+mHvp3R3UtnXHcW1CtIiwfoGvqBYfzsFuuPQpEChFWfLx5Q==","signatures":[{"sig":"MEUCIBdVFE7lSREz4QTjrd2ITf9dg8BI8NQc2RXIUWfMbCmCAiEAoRmdaVS7oqVqWqI30kTx4hu0XRaz65WCwipkk5Qy1B0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2727364},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"48939f1fa068a730d0cc2953060fe4a05612ebf5","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.3.6_1763996723895_0.4050541244814052","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@smartsamurai/krapi-sdk","version":"0.3.7","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.3.7","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"e5260d9bc15b8bd4915b3ceec578124cd58a6b1d","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.3.7.tgz","fileCount":14,"integrity":"sha512-Py7/j9PD3SeUCC7sOOeJLrG08G5mxFVuiN11fuq02XirpsLUmY90d5HZR2DuH2SHAvf+eCtZazmwagNgF4F1bg==","signatures":[{"sig":"MEQCIBixDqlDsdjfF37bx3hgq+u1c9RbObqxPmCdk57iLAA6AiBhoCjN6yjEjJM2vd+Z5pE7a+SQdOvoyO/byoN0L0OO1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2729938},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"04f444fb26dd8eeb0771c1b92d724cb26d6ba108","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.3.7_1764011709495_0.6734623025177713","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"@smartsamurai/krapi-sdk","version":"0.3.8","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.3.8","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"c9824f33eaf01d97235819e8cdd84554f0789dcc","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.3.8.tgz","fileCount":14,"integrity":"sha512-GeRdkkOSVcx92f6JtMDgQW8RKifbAb7A2e7TnHJrHJQwfdvLihi9G5GGcOZ/pJUCpjAwpJuh+J38QzkSY29T5Q==","signatures":[{"sig":"MEUCIHK/oe3T2j8ZNv3OfDPJ33Wx4h40jwnndyHQuV55jhE7AiEAzauMkV+HFESuqc+F8TazZBCJCaLF7LGbisdIlmAxsV8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2732492},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"52cbada4add74efffdb310f5b23e67da39f7ec0e","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.3.8_1764012445366_0.4249147715914614","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"@smartsamurai/krapi-sdk","version":"0.3.9","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.3.9","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"85330561f6c541077f07c5887eeb956d7748299e","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.3.9.tgz","fileCount":14,"integrity":"sha512-c5xatyN+nDoMmfPBoI/SKTWgNBBI3pUjxTZXH55Ny93KPoISKN9qwXMU4PELWHoYnMGp6U4rx4H9vrNVOO1fBQ==","signatures":[{"sig":"MEUCIEA9+PU4+kKwXVIaxMENFQbCA/dRXBwUSQ5Rueu+/TxrAiEAhROLzprHG7eHViB6PEOfwB1r9nJqXfTKbj36OtTYtIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2737691},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"a0b01e5da3242a117ba102d150da7938b47ad564","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.3.9_1764021968856_0.7454023502798546","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"@smartsamurai/krapi-sdk","version":"0.3.10","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.3.10","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"7c6975e0b38e0ad35d731385c6d4ea0f9529e051","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.3.10.tgz","fileCount":14,"integrity":"sha512-5sPzeQHiNHDtVG0TFdY0vHNChbmKTRn2uk+T7yo7NwIbEgE9U0QeA6OxE+a/+aRGT8/k5njTsjA4clvSkDNM/w==","signatures":[{"sig":"MEYCIQCZSNChTqVxjr8FhjFNxaId58zJAqISn934HNhYibkjKQIhAMVhP3h/ro3l2yBdF3MP9wu3ARLpFc/6EYsKEDKzTyW+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2736639},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"ffe79e8a2f188c6e3ebb771287203985c4485829","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.3.10_1764054229952_0.04676853362743172","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@smartsamurai/krapi-sdk","version":"0.4.0","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.4.0","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"7d704d2a0f9cfc0c3d5d55d1d6c50d150fa13265","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.4.0.tgz","fileCount":18,"integrity":"sha512-DQB5+Ye4FsQRomAQRU97JXYX4pD37+OcCtWAySDe78969YLaYE1ky/6vQhVBMp9Ko1rRkWtcYC98w93027oQXA==","signatures":[{"sig":"MEQCICgzyuTX0nrk56j5EkhsMHU9mQcPZdFHPjY0zj9zUpXWAiACRoDagJQ7J+P2Fv0CUIpZmMLxkbdNx9q6L/s3q2KMaw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2462241},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"34b68bcb5f616ed81d3f85b51d9338f2c4e3d2ec","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.4.0_1764071392668_0.09451920719713836","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@smartsamurai/krapi-sdk","version":"0.5.0","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.0","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"ab09497dce60e98c7ddb599072e0c43c3a85b418","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.0.tgz","fileCount":106,"integrity":"sha512-SycNZirSq9Amz9DjKsnfDnIYjp7rC7Ri9x/sdQLhQJUQe/Jz7FcxjQWVPLn/U72d0Z/JpLSPxqW+ZJNeokMmsA==","signatures":[{"sig":"MEUCIFaM0kpr2rUoTfb/mxXs1NV+pV9XnjcMBM6p0xzstNFfAiEA12/7gT8a/8mCNvlTEnu7f0iygOMhq/EzTrJjwgnHVVA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3834292},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"ebbe1396e8ab02aabef6149fe8c4141ecf557515","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.0_1764158202163_0.4984236698594873","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@smartsamurai/krapi-sdk","version":"0.5.1","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.1","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"ace594d0a03821283830f9174dc3a153dc1e28e0","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.1.tgz","fileCount":104,"integrity":"sha512-jQTLQnqQDHJtOTEJa/PWHhQbArDy6ZzqQvYaBN1BDn+ed2PHuki8nPk1uqlUt+hHSEv3IOX7XSOxQGcLnQooGQ==","signatures":[{"sig":"MEUCIQDxWFKOEEwIKzqRyUfe2e6GH2taNDG3AqXngEmOKIDZ/wIgEH2Zfll6QhdlYGEaZWD6azWprTxhrgn2qqojOl80xl0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3771114},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"b7bef8a343dadfc87a5800374b677e794a95b5c2","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.1_1764316494542_0.5083263840906855","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@smartsamurai/krapi-sdk","version":"0.5.2","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.2","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"8f2e3ee4d5a9486b3e15508541955cf7137cc949","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.2.tgz","fileCount":104,"integrity":"sha512-TqGvrwhj77FN30moS77R5R/RmoeZGH8HKCOC5Ci53Z7Twtd77C55/48yZstTuNtyPY2pUOwjSk2QhLwXp79vqg==","signatures":[{"sig":"MEYCIQC4zhb4FpW6UiEyMwB22uFIt9MwMBT0doty6enhOPDpLQIhALI0VBkZ8uLaHIyOIMeRtsALqSnPEtJ2rsvFcApUwuzk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3771803},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"f48da0d8ca2d74369b20017de33a9e9ebe48a9dd","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.2_1764364366180_0.02756040635006296","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@smartsamurai/krapi-sdk","version":"0.5.3","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.3","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"ae5ed3388cf3fe880ddf26699cb82dc27e7f246d","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.3.tgz","fileCount":104,"integrity":"sha512-jZYEZ+Lk6vU4IodxCcRARz0jOcWlaAvxGrZOHWyF7O9RJxRChDb8cuV72Q0MAcwDNnw91w59tOQBio+XC9ggmw==","signatures":[{"sig":"MEUCIBlaa5Kl2+4O0EiVi0QHAuqf08uTjHnilkvddM++GXYlAiEA3hHkb+ylmUbBbmERPZEKcMS+VL/qJpceDN8wWyAl90I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3779692},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"746cf5fc34e591a9c267d023742fc444394a52ed","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.3_1764429785809_0.751200213393233","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@smartsamurai/krapi-sdk","version":"0.5.4","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.4","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"1bc34a1a4f5455b6a6e64197f04ff4b7646bb0e6","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.4.tgz","fileCount":104,"integrity":"sha512-bLes5RBwbkS15ra3u63WJx0G9mBh5qbfiiSPYfs+zC4XsfQ3s15jFxAIGO6z1KvE3wGMjrRNI90br1A9xbLWKA==","signatures":[{"sig":"MEUCIG7N7RkJtnRAjaQCBvhICfl8MMWbVbmCvCH25KiqSWPjAiEAoZkQtVBBuVVRPj4RZcWhwVAKCk0WNtMTNk+o3g77FoE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3816897},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"84b29c1074eec309bc26a564fac3fd7dbacb7e2a","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.4_1764442721595_0.658167851073314","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"@smartsamurai/krapi-sdk","version":"0.5.5","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.5","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"f3f949142f9c97350b76e53b7317d7ac03f6128e","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.5.tgz","fileCount":104,"integrity":"sha512-Kf6E2JPoeNBJRq4xjludYCqRwgCvB2vliKExX1mHYJ7HYjDZRqn7aU0wetEC/5iNZzsTxyTAPfsKAgVRpAUvMQ==","signatures":[{"sig":"MEUCIHkDK5rPRXJ+ItcXMbhqgH6TPeoho+9dP9JHIj6vK5eUAiEAhCF0RHzzF/vwN14zjvoUbLK3F0Mn4buZWaTmmN0bp0c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3802450},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"643626d1393421cc4a35b152935f79f9ffb7fe14","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.5_1764443639954_0.17357622386479377","host":"s3://npm-registry-packages-npm-production"}},"0.5.6":{"name":"@smartsamurai/krapi-sdk","version":"0.5.6","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.6","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"d301cc6a92214156ff24f8e9bf6a2ff53c42306a","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.6.tgz","fileCount":104,"integrity":"sha512-2RK+Ne9CkGnPHoVsdbwZ0SMWhPnxqjLDibLJCvk3nbALWlmuh9DYN91swifIse9ebLaFknc1ZWv+9gZ7fdhN4g==","signatures":[{"sig":"MEUCIDNvUWWGt+TJfwfmbUrkoOYdIC3pbAuox1uvFzsKHPjdAiEAhcQ1v+uNr4j00IjWJJUkHt3MOyVC1UebKdMIO/vVVkA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3815748},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"7f817831ce968ff68147a7531099dd6355dddc44","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.6_1764455077959_0.973297448407733","host":"s3://npm-registry-packages-npm-production"}},"0.5.7":{"name":"@smartsamurai/krapi-sdk","version":"0.5.7","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.7","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"62f263ab1470017af858a78f300d7330f0826109","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.7.tgz","fileCount":106,"integrity":"sha512-cxOHSByd53jt3syyLJs1Y6F6Dr1oCwLiEh8Iq7XkbNsKsxBz5CjI70ODU3r88U5jyXuuwDd/qbbhxAAbDeRyiQ==","signatures":[{"sig":"MEUCIQD6KrVMjNAJIqPVUn7srM+/o44HHUl+wWWDU+1/im8zMwIgCbwjWJdxW1R6DRkybS1Drml8joT1ApPJj8ggvi8eLuo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3879831},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"87d3464215a43489db260f39bb1c9b57ac495835","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.7_1764496596848_0.7295471315292748","host":"s3://npm-registry-packages-npm-production"}},"0.5.8":{"name":"@smartsamurai/krapi-sdk","version":"0.5.8","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.8","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"3ac15c76fc21ea699cb7230bd06468c73f6af7d8","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.8.tgz","fileCount":106,"integrity":"sha512-qddsLcdcauuyKQ+ZClTI71va6mcfZaNlqk8yYqhtDXumEUX+jid9ZEZxo30No/LV0GSI0GsChlq72aKS6XgPOw==","signatures":[{"sig":"MEUCIQD0ol16IQi+VKNyjwk0GBhSjD9wF7mieAVZO/ZzgYrOVwIgJFxAPynzS2WvGBovbtv+tNzHs0swfoP7fsMOvcZxrEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3892311},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"2e41073bfdc04db688305bf6aabcac3b1fff4198","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.8_1764513540694_0.46129591788120594","host":"s3://npm-registry-packages-npm-production"}},"0.5.9":{"name":"@smartsamurai/krapi-sdk","version":"0.5.9","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.9","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"23b78e68885fb0a2cb62456204fbc4868e51d89f","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.9.tgz","fileCount":106,"integrity":"sha512-rr6OWLiqFiq6PD1iIxGNs1JCZDx4CN0LxzDfaInRFLNy2O4/t/bPC5dg7vN+4mO60PtI6ySUWfBUb6uZUU++eQ==","signatures":[{"sig":"MEYCIQDFTC2WeROJHIRTcdfDkTi2L5s1dFrRiFlOKas6gAX+cgIhAPKR6QEV7zVjYTqNQzBcVv9EFnyAJhEbBMNawHt12nIy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3896649},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"c8f5fd7917e68661fa07ab425f421241625c1e78","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.9_1764521894385_0.5870514681270274","host":"s3://npm-registry-packages-npm-production"}},"0.5.10":{"name":"@smartsamurai/krapi-sdk","version":"0.5.10","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.10","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"2c1144624ef34c2907d66b7f5672fc7176eb9884","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.10.tgz","fileCount":106,"integrity":"sha512-hi6nv+bpGKLA1ssKC7YG9wlqk4TqWqOcb/mLVRvnLmI7XfbS/cxUqO7qlxpibluWAVL5i/VGFCmY5QPf5hqx7g==","signatures":[{"sig":"MEUCIQCC3tzIVmxRwjD6IwvkIKipXr0/Z7CBYbNX/kHeXqUqYwIgW+sKuXyTH7kFdnHgFUWMH0juP40IpYQgKKAhu+Sc5gg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3898726},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"e961d15d59ca955be231f4bc2a286d828a4c9a2d","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.10_1764572972445_0.2542951465597929","host":"s3://npm-registry-packages-npm-production"}},"0.5.11":{"name":"@smartsamurai/krapi-sdk","version":"0.5.11","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.11","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"90d401ae9962c2cf8cc7796f2b96109fde8aeda9","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.11.tgz","fileCount":106,"integrity":"sha512-h+6JdIpxmwBXxNNqSxhVg6AzUOAHExuKEXo4njosBQ5MTbLziWXvO6WQX8ejk2LBxz0qmWDdkPLkS64T0UBOCA==","signatures":[{"sig":"MEUCIAHJrBWCdr0zAFP6AlQofBV41+cj/GTQOKELxtbsRVezAiEAg7vwpzxY5w4XcRFwRYZ+GK9DJs7C8rw0mgoa3Mw9St0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3929886},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"170bcc3b8ad440df5eb548259bdefce4609986da","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.11_1764599077901_0.803459996931216","host":"s3://npm-registry-packages-npm-production"}},"0.5.12":{"name":"@smartsamurai/krapi-sdk","version":"0.5.12","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.12","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"fff9f5511b528af9338b2e00ba8061015b66adac","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.12.tgz","fileCount":106,"integrity":"sha512-MVDYv2WWpbY3P8PmOBRX3pFR+B15Q942JP6/BUanVlUmZRbQGiBNfgQuOWQPpIICr5O3m467mZXVohNMDreTag==","signatures":[{"sig":"MEQCIDAGpeHfoJ31vpDt8NNHaigrRhzAf5gSb+5bQK8UIUO0AiBwggha8Xm6m6svQlPpAZ4a6vlFKvdgapSgeFS1bp6ZZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3937884},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"80986c2dac895b57354c82f7348904463473f1c3","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.12_1764659357570_0.1361650650345918","host":"s3://npm-registry-packages-npm-production"}},"0.5.13":{"name":"@smartsamurai/krapi-sdk","version":"0.5.13","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.13","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"3a2a302b435187b151870316b17172f365097d55","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.13.tgz","fileCount":106,"integrity":"sha512-NdxNM2kxgIxE8NGp8ox1RfeSVQbtc68zZYT/BJo4sUudtHOzVLbFhVVe0RaZFbHDX4i3D1NwnfVZSHKL/9fYCQ==","signatures":[{"sig":"MEUCIQDw9ZbnV/xfWNx8JN1APXF5CEGnC6jAggi4bv6KTwPbwAIgO2a+ls3vR0LDpLuxYxjolRho06q3tzPuLJfcFCxW/70=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3939243},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"d2edf22122ecd50fda50b7264256cdc43da9ae30","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.13_1764671163504_0.9105374918438591","host":"s3://npm-registry-packages-npm-production"}},"0.5.14":{"name":"@smartsamurai/krapi-sdk","version":"0.5.14","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.14","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"5fe4efbb3a6fcb4c47b6df12960d643e350fcf5f","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.14.tgz","fileCount":106,"integrity":"sha512-+nCz1DD7vskVVChtRxpcXyAeJsMdtcFbJ2fHrk99HD29wU2oHfBBj3Z3lCnXgHXlryee/1ipx4KxPnOWfftWfg==","signatures":[{"sig":"MEYCIQCXUvt5ZlxOBW4qS1ncoOQwyc2rDvRu5hOj81XRFK2AHgIhAL8QivR562bHdE8I81kJ4DUSMOuVAC49kcIExiZGoBOL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3940091},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"a30b4186db49202e01fb5b157d65eafa76d47e12","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.14_1764700380482_0.41980554099197254","host":"s3://npm-registry-packages-npm-production"}},"0.5.15":{"name":"@smartsamurai/krapi-sdk","version":"0.5.15","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.15","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"9dcd812b696bfccc8a8e6141bba46745da53ac2f","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.15.tgz","fileCount":106,"integrity":"sha512-iPJ8FCOEfdxIFKRJABd4GTX4xk+Z+TfHLmc75FMikecWWxwYfonlLC3DvtbgWQeshVWdsQhF9eHTHIDxBIsrxA==","signatures":[{"sig":"MEQCIEgh+sNk0IHHahC2NGTXqtRUtMLobngk8XglyTbbEPp6AiB+rMX/oBu92D2R0uM+zPdeUOvMmoOGIoUIdZpfOx19EA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3949771},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"cb555a5676cf4bffa93a5ae5fceee2f29a164a54","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.15_1764704092758_0.7507485118337542","host":"s3://npm-registry-packages-npm-production"}},"0.5.16":{"name":"@smartsamurai/krapi-sdk","version":"0.5.16","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.16","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"5e574f3435cce2f34d8ff1ce56b3be83b4be66c4","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.16.tgz","fileCount":106,"integrity":"sha512-pRjLpnlNPOJYUQ/Z2lYG2oEXJnqCt9xjQnp96Tv3ulXO5SgUCrZ3fBCaZye67VClLrJM6gTG2k273XbE0/9kDg==","signatures":[{"sig":"MEQCIB8SRdcDcpnx1Ih/m72I6Fvif2eiXdCCxkHLJZDHcBKpAiBUfAC7O5KnKURYkVVlpa7UDZueaQBG0cJJICdZadCpSA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3957608},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"426406c0abc0ec4bf4721b7c23448d42f1a95065","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.16_1764743703823_0.606214094527967","host":"s3://npm-registry-packages-npm-production"}},"0.5.17":{"name":"@smartsamurai/krapi-sdk","version":"0.5.17","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.17","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"734965fd91eb2528040392887b0d0da3925c92d4","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.17.tgz","fileCount":106,"integrity":"sha512-5m+cnlHdtIvHN+TUiUzFJelYHkvB1/TMDjVfSmyWZvrJfoHT0A+47Z5QBz9jYt5V3rUTwGZjpVuwOx4NY9YtJg==","signatures":[{"sig":"MEQCIHFJRD4ero9nc267ExMJM/mKetYwG5tLmgPrv2oPDG+cAiA3yZNeM2AA+w2TyLkEAeM1vQSJVYnuA2zAhSZLrsUyaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3960538},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"e6a673dd8f8e4c83fc0124b2be66354a452ad656","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.17_1764754451009_0.00662177744602066","host":"s3://npm-registry-packages-npm-production"}},"0.5.18":{"name":"@smartsamurai/krapi-sdk","version":"0.5.18","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.18","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"37da9f06ed8c5fc2369c54deca6fd52e54c9540d","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.18.tgz","fileCount":106,"integrity":"sha512-BrWWFnpQ9xTvmuPpJ0kC0dYL3AzifuXw0CJRfv/Bxbf15DO6uuw1OQEzTLw5ezi6L9c6ZFB97xeeop/wQXNjTg==","signatures":[{"sig":"MEUCIQDRWkPFssZWOcu2YqObgu5OogervOXdbgtajG2Ec2YiHwIgZOOh1fyMlDA9FlfqRDwaFT1ycHyXL0qNDTu4LbxE2Ug=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3963071},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"cbea34681f232432e46baff292868f1aee96731c","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.5","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.18_1764757065947_0.039437692593449425","host":"s3://npm-registry-packages-npm-production"}},"0.5.19":{"name":"@smartsamurai/krapi-sdk","version":"0.5.19","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.19","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"60acfb6371caa1a701ffa90e32cdc1d941e5323e","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.19.tgz","fileCount":19,"integrity":"sha512-nhjOdBlNHXBzN+rEprb8C/Sny8sCvLi/hBJhd1rZxsbNrZnc+J0mks658/V1Kzsrr4hmJMnY62lYLYKfH+CYiw==","signatures":[{"sig":"MEQCIB0H8GOCTn286O+3QzzWgjcNOrXcBWhJsXPOIehT5Gl2AiA1XMyZbjuwYSE74xCcYXknlMzk5cqbh3JeIh2oNd5PXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2685642},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"82ddbb26907949d0f521327d7c111135141fcec9","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.6","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.19_1765795255292_0.539821623310178","host":"s3://npm-registry-packages-npm-production"}},"0.5.20":{"name":"@smartsamurai/krapi-sdk","version":"0.5.20","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.5.20","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"f38a591305da4aeaec2dcc188b4fd130dacbe746","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.5.20.tgz","fileCount":19,"integrity":"sha512-qJqbpkoyKdzvfpitcnuVDkNIPMPYBWso6TlhlaUS0t6NiCzw9UXcdOxgxPJ/MFySM+9JqA2dO+Yjn/SIpYkWnQ==","signatures":[{"sig":"MEYCIQCGcvpQH6ZQo/boGECVyhIHok44dH2+XHwwTSd8b5C3kgIhAMdztxhf7OUf1J5GN7paTCA19pY/bjzqrTf69Ps49vSE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2709980},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"14371ed0b83fd39ee4ec1622aaa785ec110b6ea6","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.6","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.5.20_1765871694115_0.9981704688982531","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@smartsamurai/krapi-sdk","version":"0.6.0","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"author":{"name":"GenorTG"},"license":"UNLICENSED","_id":"@smartsamurai/krapi-sdk@0.6.0","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"dist":{"shasum":"b986b7f7b0ff7ecafc396253f738b0631aceffb8","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.6.0.tgz","fileCount":21,"integrity":"sha512-sL2K5eiubXyOYK5Ov086kDY0WFr0hlIFLjDzVQkukK6d0CGzWmjqxQkFhViC4zpuLuiS+7+BENl3WZgA0+lK+A==","signatures":[{"sig":"MEUCICeLBxXiqTx3ySQ8WhJmN/T/1m8v8FxvVgU3mroFqvG3AiEA+G805J7GgBmTtWcsIug9F1IrOPBza0eadnA372Myyl4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2819735},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"gitHead":"5f97463b293c3521b37f389dae64f933b8a23779","scripts":{"dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","lint":"eslint . --ext .ts","build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","check":"npm run lint && npm run type-check","prepack":"npm run build","lint:fix":"eslint . --ext .ts --fix","type-check":"tsc --noEmit","test:headers":"node test-header-logic.js","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","security-check":"npm audit --audit-level=moderate"},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"repository":{"url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git","type":"git"},"_npmVersion":"10.8.2","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","directories":{},"_nodeVersion":"20.19.6","dependencies":{"axios":"^1.13.1","bcryptjs":"^3.0.2","nodemailer":"^7.0.10"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","eslint":"^9.32.0","typescript":"^5.8.3","@types/node":"^22.15.31","@types/bcryptjs":"^2.4.6","@types/nodemailer":"^6.4.14","eslint-plugin-import":"^2.32.0","@typescript-eslint/parser":"^8.38.0","@typescript-eslint/eslint-plugin":"^8.38.0"},"_npmOperationalInternal":{"tmp":"tmp/krapi-sdk_0.6.0_1765963498841_0.521719645214866","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@smartsamurai/krapi-sdk","version":"0.6.1","description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"repository":{"type":"git","url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git"},"homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","license":"UNLICENSED","author":{"name":"GenorTG"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"}},"scripts":{"build":"tsup src/index.ts src/client.ts --format cjs,esm --dts","dev":"tsup src/index.ts src/client.ts --format cjs,esm --dts --watch","type-check":"tsc --noEmit","lint":"eslint . --ext .ts","lint:fix":"eslint . --ext .ts --fix","check":"npm run lint && npm run type-check","test:headers":"node test-header-logic.js","security-check":"npm audit --audit-level=moderate","check-outdated":"node scripts/check-outdated.js","prepublishOnly":"npm run security-check && npm run check-outdated && npm run build && npm run check","prepack":"npm run build"},"dependencies":{"bcryptjs":"^3.0.2","axios":"^1.13.1","nodemailer":"^7.0.10"},"devDependencies":{"@types/bcryptjs":"^2.4.6","@types/node":"^22.15.31","@types/nodemailer":"^6.4.14","@typescript-eslint/eslint-plugin":"^8.38.0","@typescript-eslint/parser":"^8.38.0","eslint":"^9.32.0","eslint-plugin-import":"^2.32.0","tsup":"^8.0.0","typescript":"^5.8.3"},"_id":"@smartsamurai/krapi-sdk@0.6.1","gitHead":"c0de3580d4a195a1d83ac129d15498e76497709d","bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"_nodeVersion":"20.19.6","_npmVersion":"10.8.2","dist":{"integrity":"sha512-y8scMKRNuqTwLK3UiUEokoHWJmQcG8bpVKIZ3wU4eCf0TLWqZy1q7/NydisBwFi7uzeIgTqjCLBN8anM/vWpvA==","shasum":"905dcbc33b294424ed7a230a2622f8e2a9628674","tarball":"https://registry.npmjs.org/@smartsamurai/krapi-sdk/-/krapi-sdk-0.6.1.tgz","fileCount":21,"unpackedSize":2825217,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICO1zY0DFQZqaolyl1fYEHi3UdgjJVy3pHpFy4j7Bx2CAiEAvjIZtc+h4/gGlArHj3Qt5pCcDdmb4KXq9E1pxKqL1Xg="}]},"_npmUser":{"name":"genortg","email":"krzysztofkutniowski@gmail.com"},"directories":{},"maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/krapi-sdk_0.6.1_1765983494829_0.3074314838950829"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-09T16:24:33.540Z","modified":"2025-12-17T14:58:15.226Z","0.1.0":"2025-11-09T16:24:33.863Z","0.1.1":"2025-11-10T15:27:42.955Z","0.1.2":"2025-11-11T17:02:37.062Z","0.1.3":"2025-11-11T20:07:40.637Z","0.1.4":"2025-11-12T06:54:20.743Z","0.1.5":"2025-11-12T07:42:07.260Z","0.1.6":"2025-11-12T09:41:35.668Z","0.1.7":"2025-11-12T11:12:08.027Z","0.1.8":"2025-11-12T11:36:19.182Z","0.1.9":"2025-11-12T12:45:05.052Z","0.1.10":"2025-11-12T13:29:16.529Z","0.1.11":"2025-11-13T10:45:42.326Z","0.2.0":"2025-11-20T14:43:52.289Z","0.2.1":"2025-11-22T15:21:41.360Z","0.2.2":"2025-11-22T17:18:48.093Z","0.3.0":"2025-11-22T21:59:11.249Z","0.3.1":"2025-11-23T10:21:10.961Z","0.3.2":"2025-11-23T10:45:42.203Z","0.3.3":"2025-11-23T19:26:45.035Z","0.3.4":"2025-11-23T20:36:44.550Z","0.3.5":"2025-11-24T10:00:37.567Z","0.3.6":"2025-11-24T15:05:24.102Z","0.3.7":"2025-11-24T19:15:09.746Z","0.3.8":"2025-11-24T19:27:25.595Z","0.3.9":"2025-11-24T22:06:09.080Z","0.3.10":"2025-11-25T07:03:50.213Z","0.4.0":"2025-11-25T11:49:52.932Z","0.5.0":"2025-11-26T11:56:42.408Z","0.5.1":"2025-11-28T07:54:54.784Z","0.5.2":"2025-11-28T21:12:46.427Z","0.5.3":"2025-11-29T15:23:06.031Z","0.5.4":"2025-11-29T18:58:41.849Z","0.5.5":"2025-11-29T19:14:00.204Z","0.5.6":"2025-11-29T22:24:38.204Z","0.5.7":"2025-11-30T09:56:37.095Z","0.5.8":"2025-11-30T14:39:00.966Z","0.5.9":"2025-11-30T16:58:14.633Z","0.5.10":"2025-12-01T07:09:32.662Z","0.5.11":"2025-12-01T14:24:38.145Z","0.5.12":"2025-12-02T07:09:17.787Z","0.5.13":"2025-12-02T10:26:03.760Z","0.5.14":"2025-12-02T18:33:00.720Z","0.5.15":"2025-12-02T19:34:52.973Z","0.5.16":"2025-12-03T06:35:04.091Z","0.5.17":"2025-12-03T09:34:11.238Z","0.5.18":"2025-12-03T10:17:46.197Z","0.5.19":"2025-12-15T10:40:55.455Z","0.5.20":"2025-12-16T07:54:54.294Z","0.6.0":"2025-12-17T09:24:59.042Z","0.6.1":"2025-12-17T14:58:15.025Z"},"bugs":{"url":"https://github.com/Smart-Samurai/Krapi-SDK/issues"},"author":{"name":"GenorTG"},"license":"UNLICENSED","homepage":"https://github.com/Smart-Samurai/Krapi-SDK#readme","keywords":["krapi","backend","sdk","api","client","self-hosted","database","collections","documents"],"repository":{"type":"git","url":"git+https://github.com/Smart-Samurai/Krapi-SDK.git"},"description":"KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)","maintainers":[{"name":"genortg","email":"krzysztofkutniowski@gmail.com"}],"readme":"# @smartsamurai/krapi-sdk\n\nTypeScript SDK for KRAPI - self-hosted backend-as-a-service platform.\n\n[![npm version](https://img.shields.io/npm/v/@smartsamurai/krapi-sdk.svg)](https://www.npmjs.com/package/@smartsamurai/krapi-sdk)\n[![License: Proprietary](https://img.shields.io/badge/License-Proprietary-red.svg)](LICENSE)\n\n## Installation\n\n```bash\nnpm install @smartsamurai/krapi-sdk\n```\n\n**Requirements:** Node.js 18+, TypeScript 5.0+ (recommended)\n\n## Quick Start\n\n```typescript\nimport { krapi } from '@smartsamurai/krapi-sdk';\n\n// Connect to KRAPI server (Client Mode)\nawait krapi.connect({\n  endpoint: 'http://localhost:3470/krapi/k1',\n  apiKey: 'your-api-key'\n});\n\n// Use SDK methods - same API works everywhere!\nconst projects = await krapi.projects.getAll();\nconst project = await krapi.projects.create({ name: 'My Project' });\nconst collection = await krapi.collections.create(project.id, {\n  name: 'tasks',\n  fields: [\n    { name: 'title', type: 'string', required: true },\n    { name: 'completed', type: 'boolean', default: false }\n  ]\n});\n```\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [Architecture Overview](#architecture-overview)\n- [Core Concepts](#core-concepts)\n  - [Modes Explained](#modes-explained)\n  - [Connection Management](#connection-management)\n- [Authentication Service](#authentication-service)\n- [Services Reference](#services-reference)\n  - [Projects Service](#projects-service)\n  - [Collections Service](#collections-service)\n  - [Documents Service](#documents-service)\n  - [Users Service](#users-service)\n  - [Storage Service](#storage-service)\n  - [Email Service](#email-service)\n  - [Admin Service](#admin-service)\n  - [API Keys Service](#api-keys-service)\n  - [Database Service](#database-service)\n  - [Health Service](#health-service)\n  - [System Service](#system-service)\n  - [Testing Service](#testing-service)\n  - [Backup Service](#backup-service)\n  - [MCP Service](#mcp-service)\n  - [Changelog Service](#changelog-service)\n  - [Activity Service](#activity-service)\n- [Error Handling](#error-handling)\n- [Advanced Topics](#advanced-topics)\n- [Examples](#examples)\n- [Configuration](#configuration)\n- [Support](#support)\n\n## Architecture Overview\n\nThe KRAPI SDK uses a \"plug and socket\" architecture that provides perfect API parity between client and server environments. The same code works identically in both modes, automatically switching between HTTP requests (client) and direct database access (server).\n\n```mermaid\ngraph TB\n    subgraph ClientMode[\"Client Mode (HTTP)\"]\n        Frontend[Frontend App] --> SDK1[KRAPI SDK]\n        NextJS[Next.js Route] --> SDK2[KRAPI SDK]\n        External[External Service] --> SDK3[KRAPI SDK]\n        SDK1 --> HTTP[HTTP Client]\n        SDK2 --> HTTP\n        SDK3 --> HTTP\n        HTTP --> Server[KRAPI Server]\n        Server --> DB[(Database)]\n    end\n    \n    subgraph ServerMode[\"Server Mode (Database)\"]\n        Express[Express Route] --> SDK4[KRAPI SDK]\n        Backend[Backend Service] --> SDK5[KRAPI SDK]\n        SDK4 --> DirectDB[Direct DB Access]\n        SDK5 --> DirectDB\n        DirectDB --> DB\n    end\n    \n    style ClientMode fill:#e1f5ff\n    style ServerMode fill:#fff4e1\n    style SDK1 fill:#4CAF50\n    style SDK2 fill:#4CAF50\n    style SDK3 fill:#4CAF50\n    style SDK4 fill:#4CAF50\n    style SDK5 fill:#4CAF50\n```\n\n## Core Concepts\n\n### Modes Explained\n\nThe SDK operates in two distinct modes, automatically determined by your connection configuration:\n\n#### Client Mode (HTTP)\n\n**When to use:** Frontend applications, Next.js API routes, external services, microservices\n\n**How it works:** Makes HTTP requests to your KRAPI server via REST API\n\n**Configuration:**\n```typescript\nawait krapi.connect({\n  endpoint: 'http://localhost:3470/krapi/k1', // Required: Server URL\n  apiKey: 'your-api-key',                      // Optional: For API key auth\n  sessionToken: 'token',                       // Optional: For session auth\n  timeout: 30000,                              // Optional: Request timeout (ms)\n  retry: {                                     // Optional: Retry configuration\n    attempts: 3,\n    delay: 1000\n  },\n  initializeClients: false                      // Optional: Lazy client init\n});\n```\n\n**Benefits:**\n- Works from any environment (browser, Node.js, edge functions)\n- No direct database access required\n- Secure - credentials never exposed to client\n- Works across network boundaries\n\n#### Server Mode (Database)\n\n**When to use:** Backend services, Express routes, internal services, serverless functions with DB access\n\n**How it works:** Directly queries the database for maximum performance\n\n**Configuration:**\n```typescript\nawait krapi.connect({\n  database: databaseConnection,  // Required: Database connection\n  logger: console                // Optional: Custom logger\n});\n```\n\n**Benefits:**\n- Maximum performance - no HTTP overhead\n- Lower latency - direct database access\n- Reduced network traffic\n- Full transaction support\n\n**Important:** Both modes provide identical APIs. The same code works in both environments without modification!\n\n### Connection Management\n\nThe SDK supports flexible connection management:\n\n**Reconnection:**\n```typescript\n// Connect to first endpoint\nawait krapi.connect({ endpoint: 'http://server1:3470/krapi/k1', apiKey: 'key1' });\n\n// Reconnect to different endpoint (all HTTP clients are recreated)\nawait krapi.connect({ endpoint: 'http://server2:3470/krapi/k1', apiKey: 'key2' });\n```\n\n**Connection Status:**\n```typescript\n// Check if connected\nif (krapi.isConnected()) {\n  // SDK is ready to use\n}\n\n// Get current mode\nconst mode = krapi.getMode(); // 'client' | 'server' | null\n\n// Get current configuration\nconst config = krapi.getConfig();\n```\n\n**Cleanup:**\n```typescript\n// Close connection and cleanup resources\nawait krapi.close();\n```\n\n## Multiple SDK Instances\n\nFor applications that need to connect to multiple endpoints simultaneously (like frontend applications with client and proxy routes), use `createSDKInstance()` to create separate isolated instances:\n\n```typescript\nimport { createSDKInstance } from '@smartsamurai/krapi-sdk';\n\n// Create separate instances for different endpoints\nconst clientSDK = createSDKInstance();\nawait clientSDK.connect({ \n  endpoint: 'http://127.0.0.1:3498/krapi/k1', \n  apiKey: 'key' \n});\n\nconst proxySDK = createSDKInstance();\nawait proxySDK.connect({ \n  endpoint: 'http://127.0.0.1:3470/krapi/k1', \n  apiKey: 'key' \n});\n\n// Both can be used simultaneously without conflicts\nawait clientSDK.auth.login(username, password);\nawait proxySDK.projects.getAll();\n```\n\nEach instance maintains its own HTTP clients, authentication state, and connection configuration, preventing conflicts when you need to connect to different endpoints simultaneously.\n\n## Authentication Service\n\nThe Authentication service (`krapi.auth`) provides comprehensive user authentication, session management, and API key operations. All methods work identically in both client and server modes.\n\n### Overview\n\nThe authentication service supports:\n- **API Key Authentication** - For service-to-service communication\n- **Session-based Authentication** - For user login sessions\n- **Admin Authentication** - For administrative operations\n- **User Registration** - For creating new user accounts\n- **Session Management** - Token validation, refresh, and logout\n\n### Authentication Methods\n\n#### `createSession(apiKey: string)`\n\nCreate a session from an API key. Returns a session token that can be used for subsequent requests.\n\n**Parameters:**\n- `apiKey` (required) - API key string\n\n**Returns:**\n```typescript\n{\n  session_token: string;\n  expires_at: string;\n  user_type: 'admin' | 'project';\n  scopes: string[];\n}\n```\n\n**Example (Client Mode):**\n```typescript\nawait krapi.connect({ endpoint: 'http://localhost:3470/krapi/k1' });\n\nconst session = await krapi.auth.createSession('your-api-key');\nconsole.log('Session token:', session.session_token);\nconsole.log('Expires at:', session.expires_at);\n```\n\n**Example (Server Mode):**\n```typescript\nawait krapi.connect({ database: dbConnection });\n\n// Same API works identically\nconst session = await krapi.auth.createSession('your-api-key');\n```\n\n#### `login(username: string, password: string, remember_me?: boolean)`\n\nAuthenticate a user with username and password credentials.\n\n**Parameters:**\n- `username` (required) - Username\n- `password` (required) - Password\n- `remember_me` (optional) - Whether to create a long-lived session\n\n**Returns:**\n```typescript\n{\n  session_token: string;\n  expires_at: string;\n  user: AdminUser | ProjectUser;\n  scopes: string[];\n}\n```\n\n**Example:**\n```typescript\n// Login\nconst result = await krapi.auth.login('admin', 'password123', true);\n\n// Session token is automatically used for subsequent requests\n// Or set it explicitly:\nawait krapi.auth.setSessionToken(result.session_token);\n\n// Get current user\nconst user = await krapi.auth.getCurrentUser();\n```\n\n#### `setSessionToken(token: string)`\n\nSet the session token for subsequent requests. In client mode, this configures all HTTP clients to include the token in headers.\n\n**Parameters:**\n- `token` (required) - Session token string\n\n**Example:**\n```typescript\n// Set session token after login\nawait krapi.auth.setSessionToken('session-token-here');\n\n// All subsequent requests will use this token\nconst projects = await krapi.projects.getAll();\n```\n\n#### `setApiKey(apiKey: string)`\n\nSet the API key for subsequent requests. In client mode, this configures all HTTP clients to include the API key in headers.\n\n**Parameters:**\n- `apiKey` (required) - API key string\n\n**Example:**\n```typescript\n// Set API key\nkrapi.auth.setApiKey('your-api-key');\n\n// All subsequent requests will use this API key\nconst projects = await krapi.projects.getAll();\n```\n\n#### `logout()`\n\nLogout the current session, invalidating the session token.\n\n**Returns:**\n```typescript\n{ success: boolean }\n```\n\n**Example:**\n```typescript\nconst result = await krapi.auth.logout();\nif (result.success) {\n  console.log('Logged out successfully');\n}\n```\n\n#### `getCurrentUser()`\n\nGet the currently authenticated user. In client mode, retrieves user from session. In server mode, requires session context.\n\n**Returns:**\n```typescript\n{\n  success: boolean;\n  data?: AdminUser | ProjectUser;\n  error?: string;\n}\n```\n\n**Example:**\n```typescript\nconst result = await krapi.auth.getCurrentUser();\nif (result.success && result.data) {\n  console.log('Current user:', result.data.username);\n  console.log('User role:', result.data.role);\n} else {\n  console.error('Not authenticated:', result.error);\n}\n```\n\n#### `refreshSession()`\n\nRefresh the current session, extending its expiration time.\n\n**Returns:**\n```typescript\n{\n  session_token: string;\n  expires_at: string;\n}\n```\n\n**Example:**\n```typescript\nconst refreshed = await krapi.auth.refreshSession();\nconsole.log('New expiration:', refreshed.expires_at);\n```\n\n#### `validateSession(token: string)`\n\nValidate a session token and retrieve the associated user.\n\n**Parameters:**\n- `token` (required) - Session token to validate\n\n**Returns:**\n```typescript\n{\n  valid: boolean;\n  session?: AdminUser | ProjectUser;\n}\n```\n\n**Example:**\n```typescript\nconst validation = await krapi.auth.validateSession('token-here');\nif (validation.valid && validation.session) {\n  console.log('Valid session for user:', validation.session.username);\n}\n```\n\n#### `changePassword(oldPassword: string, newPassword: string)`\n\nChange the password for the current user. Requires user context.\n\n**Parameters:**\n- `oldPassword` (required) - Current password\n- `newPassword` (required) - New password\n\n**Returns:**\n```typescript\n{ success: boolean }\n```\n\n**Example:**\n```typescript\nconst result = await krapi.auth.changePassword('oldpass', 'newpass');\nif (result.success) {\n  console.log('Password changed successfully');\n}\n```\n\n#### `regenerateApiKey(req: unknown)`\n\nRegenerate an API key for the current user or context.\n\n**Parameters:**\n- `req` (required) - Request context (varies by implementation)\n\n**Returns:**\n```typescript\n{\n  success: boolean;\n  data?: { apiKey: string };\n  error?: string;\n}\n```\n\n### Advanced Authentication Methods\n\n#### `adminLogin(credentials: { username: string; password: string; remember_me?: boolean })`\n\nAdmin-level login with enhanced response format.\n\n**Parameters:**\n- `credentials.username` (required) - Admin username\n- `credentials.password` (required) - Admin password\n- `credentials.remember_me` (optional) - Long-lived session\n\n**Returns:**\n```typescript\n{\n  success: boolean;\n  data?: {\n    session_token: string;\n    expires_at: string;\n    user: AdminUser | ProjectUser;\n    scopes: string[];\n  };\n  error?: string;\n}\n```\n\n**Example:**\n```typescript\nconst result = await krapi.auth.adminLogin({\n  username: 'admin',\n  password: 'password',\n  remember_me: true\n});\n\nif (result.success && result.data) {\n  await krapi.auth.setSessionToken(result.data.session_token);\n}\n```\n\n#### `adminApiLogin(apiKey: string | { api_key?: string })`\n\nAdmin-level authentication using API key.\n\n**Parameters:**\n- `apiKey` (required) - API key string or object with `api_key` property\n\n**Returns:**\n```typescript\n{\n  success: boolean;\n  data?: {\n    user: AdminUser & { scopes: string[] };\n    session_token: string;\n    expires_at: string;\n  };\n  error?: string;\n}\n```\n\n**Example:**\n```typescript\nconst result = await krapi.auth.adminApiLogin('admin-api-key');\nif (result.success && result.data) {\n  console.log('Admin user:', result.data.user.username);\n  await krapi.auth.setSessionToken(result.data.session_token);\n}\n```\n\n#### `register(registerData: { username: string; email: string; password: string; role?: string; access_level?: string; permissions?: string[] })`\n\nRegister a new user account.\n\n**Parameters:**\n- `registerData.username` (required) - Username\n- `registerData.email` (required) - Email address\n- `registerData.password` (required) - Password\n- `registerData.role` (optional) - User role\n- `registerData.access_level` (optional) - Access level\n- `registerData.permissions` (optional) - Array of permissions\n\n**Returns:**\n```typescript\n{\n  success: boolean;\n  user: Record<string, unknown>;\n}\n```\n\n**Example:**\n```typescript\nconst result = await krapi.auth.register({\n  username: 'newuser',\n  email: 'user@example.com',\n  password: 'securepassword',\n  role: 'user',\n  access_level: 'standard'\n});\n\nif (result.success) {\n  console.log('User registered:', result.user);\n}\n```\n\n#### `validateApiKey(apiKey: string)`\n\nValidate an API key and retrieve its information.\n\n**Parameters:**\n- `apiKey` (required) - API key to validate\n\n**Returns:**\n```typescript\n{\n  valid: boolean;\n  key_info?: {\n    id: string;\n    name: string;\n    type: string;\n    scopes: string[];\n    project_id?: string;\n  };\n}\n```\n\n**Example:**\n```typescript\nconst validation = await krapi.auth.validateApiKey('api-key-here');\nif (validation.valid && validation.key_info) {\n  console.log('Key name:', validation.key_info.name);\n  console.log('Scopes:', validation.key_info.scopes);\n}\n```\n\n### Authentication Flow Examples\n\n**Complete Login Flow:**\n```typescript\n// 1. Connect to server\nawait krapi.connect({\n  endpoint: 'http://localhost:3470/krapi/k1',\n  apiKey: 'initial-api-key' // Optional initial auth\n});\n\n// 2. Login with credentials\nconst loginResult = await krapi.auth.login('username', 'password');\n\n// 3. Set session token (automatically used, but can set explicitly)\nawait krapi.auth.setSessionToken(loginResult.session_token);\n\n// 4. Verify authentication\nconst user = await krapi.auth.getCurrentUser();\nconsole.log('Authenticated as:', user.data?.username);\n\n// 5. Use authenticated session\nconst projects = await krapi.projects.getAll();\n\n// 6. Refresh session before expiration\nconst refreshed = await krapi.auth.refreshSession();\n\n// 7. Logout when done\nawait krapi.auth.logout();\n```\n\n**API Key Authentication Flow:**\n```typescript\n// Connect with API key\nawait krapi.connect({\n  endpoint: 'http://localhost:3470/krapi/k1',\n  apiKey: 'your-api-key'\n});\n\n// Or set API key after connection\nkrapi.auth.setApiKey('your-api-key');\n\n// Validate the API key\nconst validation = await krapi.auth.validateApiKey('your-api-key');\nif (validation.valid) {\n  console.log('API key is valid');\n}\n\n// Create session from API key\nconst session = await krapi.auth.createSession('your-api-key');\nawait krapi.auth.setSessionToken(session.session_token);\n```\n\n**Error Handling:**\n```typescript\nimport { KrapiError } from '@smartsamurai/krapi-sdk';\n\ntry {\n  await krapi.auth.login('username', 'wrong-password');\n} catch (error) {\n  if (error instanceof KrapiError) {\n    if (error.isAuthError()) {\n      console.error('Authentication failed:', error.message);\n    } else {\n      console.error('Error:', error.getDetailedMessage());\n    }\n  }\n}\n```\n\n## Services Reference\n\nComplete documentation for all KRAPI SDK services. Each service works identically in both client and server modes.\n\n---\n\n## Projects Service\n\nThe Projects service (`krapi.projects`) manages project creation, configuration, and statistics. Projects are top-level containers that organize collections, documents, users, and other resources.\n\n### Overview\n\nProjects provide:\n- **Isolation** - Each project has its own collections, documents, and users\n- **Configuration** - Project-specific settings and metadata\n- **Statistics** - Usage metrics and activity tracking\n- **Access Control** - Project-level permissions and API keys\n\n### Methods\n\n#### `create(projectData: { name: string; description?: string; settings?: Record<string, unknown> })`\n\nCreate a new project.\n\n**Parameters:**\n- `projectData.name` (required) - Project name (must be unique)\n- `projectData.description` (optional) - Project description\n- `projectData.settings` (optional) - Project settings object\n\n**Returns:** `Promise<Project>`\n\n**Example:**\n```typescript\n// Client Mode\nawait krapi.connect({ endpoint: 'http://localhost:3470/krapi/k1', apiKey: 'key' });\n\nconst project = await krapi.projects.create({\n  name: 'My Application',\n  description: 'Main application project',\n  settings: {\n    theme: 'dark',\n    language: 'en'\n  }\n});\n\nconsole.log('Created project:', project.id);\n```\n\n**Example (Server Mode):**\n```typescript\n// Server Mode - same API!\nawait krapi.connect({ database: dbConnection });\n\nconst project = await krapi.projects.create({\n  name: 'My Application',\n  description: 'Main application project'\n});\n```\n\n#### `get(projectId: string)`\n\nGet a project by its ID.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n\n**Returns:** `Promise<Project>`\n\n**Example:**\n```typescript\nconst project = await krapi.projects.get('project-uuid-here');\nconsole.log('Project name:', project.name);\nconsole.log('Created at:', project.created_at);\n```\n\n#### `getAll(options?: { limit?: number; offset?: number; search?: string; status?: string })`\n\nList all projects with optional filtering and pagination.\n\n**Parameters:**\n- `options.limit` (optional) - Maximum number of results (default: unlimited)\n- `options.offset` (optional) - Number of results to skip (default: 0)\n- `options.search` (optional) - Search query to filter by name/description\n- `options.status` (optional) - Filter by status ('active', 'inactive', etc.)\n\n**Returns:** `Promise<Project[]>`\n\n**Example:**\n```typescript\n// Get all projects\nconst allProjects = await krapi.projects.getAll();\n\n// Paginated results\nconst page1 = await krapi.projects.getAll({ limit: 10, offset: 0 });\nconst page2 = await krapi.projects.getAll({ limit: 10, offset: 10 });\n\n// Search projects\nconst searchResults = await krapi.projects.getAll({\n  search: 'application',\n  limit: 20\n});\n```\n\n#### `update(projectId: string, updates: Record<string, unknown>)`\n\nUpdate project properties.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `updates` (required) - Object with fields to update\n\n**Returns:** `Promise<Project>`\n\n**Example:**\n```typescript\nconst updated = await krapi.projects.update('project-id', {\n  name: 'Updated Project Name',\n  description: 'New description'\n});\n```\n\n#### `delete(projectId: string)`\n\nDelete a project and all its associated resources.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n\n**Returns:** `Promise<{ success: boolean }>`\n\n**Example:**\n```typescript\nconst result = await krapi.projects.delete('project-id');\nif (result.success) {\n  console.log('Project deleted successfully');\n}\n```\n\n#### `getStatistics(projectId: string)`\n\nGet project statistics including collection count, document count, user count, and storage usage.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n\n**Returns:** `Promise<ProjectStats>`\n\n**Example:**\n```typescript\nconst stats = await krapi.projects.getStatistics('project-id');\nconsole.log('Collections:', stats.collections_count);\nconsole.log('Documents:', stats.documents_count);\nconsole.log('Users:', stats.users_count);\nconsole.log('Storage used:', stats.storage_used_bytes);\n```\n\n#### `getSettings(projectId: string)`\n\nGet project settings.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n\n**Returns:** `Promise<ProjectSettings>`\n\n**Example:**\n```typescript\nconst settings = await krapi.projects.getSettings('project-id');\nconsole.log('Settings:', settings);\n```\n\n#### `updateSettings(projectId: string, settings: Record<string, unknown>)`\n\nUpdate project settings.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `settings` (required) - Settings object to merge\n\n**Returns:** `Promise<ProjectSettings>`\n\n**Example:**\n```typescript\nconst updated = await krapi.projects.updateSettings('project-id', {\n  theme: 'light',\n  notifications_enabled: true\n});\n```\n\n#### `getActivity(projectId: string, options?: { limit?: number; offset?: number; action_type?: string; start_date?: string; end_date?: string })`\n\nGet project activity log.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `options.limit` (optional) - Maximum number of results\n- `options.offset` (optional) - Number of results to skip\n- `options.action_type` (optional) - Filter by action type\n- `options.start_date` (optional) - Start date (ISO string)\n- `options.end_date` (optional) - End date (ISO string)\n\n**Returns:** `Promise<ActivityLog[]>`\n\n**Example:**\n```typescript\n// Get recent activity\nconst activity = await krapi.projects.getActivity('project-id', {\n  limit: 50,\n  action_type: 'create'\n});\n\n// Get activity for date range\nconst rangeActivity = await krapi.projects.getActivity('project-id', {\n  start_date: '2024-01-01T00:00:00Z',\n  end_date: '2024-01-31T23:59:59Z'\n});\n```\n\n### Complete Example\n\n```typescript\n// Create a project\nconst project = await krapi.projects.create({\n  name: 'Task Manager',\n  description: 'Project management application'\n});\n\n// Get project details\nconst details = await krapi.projects.get(project.id);\n\n// Update project\nawait krapi.projects.update(project.id, {\n  description: 'Updated description'\n});\n\n// Get statistics\nconst stats = await krapi.projects.getStatistics(project.id);\nconsole.log(`Project has ${stats.collections_count} collections`);\n\n// Get activity\nconst activity = await krapi.projects.getActivity(project.id, { limit: 10 });\n\n// Update settings\nawait krapi.projects.updateSettings(project.id, {\n  auto_backup: true,\n  retention_days: 30\n});\n```\n\n---\n\n## Collections Service\n\nThe Collections service (`krapi.collections`) manages database collections (tables) within projects. Collections define the schema for documents stored in them.\n\n### Overview\n\nCollections provide:\n- **Schema Definition** - Field types, validation rules, and constraints\n- **Indexing** - Performance optimization through indexes\n- **Validation** - Schema validation for data integrity\n- **Statistics** - Document count and storage metrics\n\n### Methods\n\n#### `create(projectId: string, collectionData: { name: string; description?: string; fields: Array<FieldDefinition>; indexes?: Array<IndexDefinition> })`\n\nCreate a new collection with schema definition.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `collectionData.name` (required) - Collection name (must be unique within project)\n- `collectionData.description` (optional) - Collection description\n- `collectionData.fields` (required) - Array of field definitions:\n  - `name` (required) - Field name\n  - `type` (required) - Field type ('string', 'number', 'boolean', 'date', 'json', etc.)\n  - `required` (optional) - Whether field is required (default: false)\n  - `unique` (optional) - Whether field values must be unique (default: false)\n  - `indexed` (optional) - Whether field is indexed (default: false)\n  - `default` (optional) - Default value\n  - `validation` (optional) - Validation rules object\n- `collectionData.indexes` (optional) - Array of index definitions:\n  - `name` (required) - Index name\n  - `fields` (required) - Array of field names to index\n  - `unique` (optional) - Whether index enforces uniqueness\n\n**Returns:** `Promise<Collection>`\n\n**Example:**\n```typescript\nconst collection = await krapi.collections.create('project-id', {\n  name: 'tasks',\n  description: 'Task management collection',\n  fields: [\n    {\n      name: 'title',\n      type: 'string',\n      required: true,\n      indexed: true\n    },\n    {\n      name: 'completed',\n      type: 'boolean',\n      default: false\n    },\n    {\n      name: 'due_date',\n      type: 'date',\n      required: false\n    },\n    {\n      name: 'priority',\n      type: 'number',\n      default: 0,\n      validation: { min: 0, max: 5 }\n    }\n  ],\n  indexes: [\n    {\n      name: 'idx_completed',\n      fields: ['completed']\n    },\n    {\n      name: 'idx_title_unique',\n      fields: ['title'],\n      unique: true\n    }\n  ]\n});\n```\n\n#### `get(projectId: string, collectionName: string)`\n\nGet a collection by name.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `collectionName` (required) - Collection name\n\n**Returns:** `Promise<Collection>`\n\n**Example:**\n```typescript\nconst collection = await krapi.collections.get('project-id', 'tasks');\nconsole.log('Collection fields:', collection.fields);\n```\n\n#### `getAll(projectId: string, options?: { limit?: number; offset?: number; search?: string })`\n\nList all collections in a project.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `options.limit` (optional) - Maximum number of results\n- `options.offset` (optional) - Number of results to skip\n- `options.search` (optional) - Search query to filter by name/description\n\n**Returns:** `Promise<Collection[]>`\n\n**Example:**\n```typescript\n// Get all collections\nconst collections = await krapi.collections.getAll('project-id');\n\n// Search collections\nconst searchResults = await krapi.collections.getAll('project-id', {\n  search: 'task',\n  limit: 10\n});\n```\n\n#### `update(projectId: string, collectionName: string, updates: { description?: string; fields?: Array<FieldDefinition> })`\n\nUpdate collection metadata or schema.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `collectionName` (required) - Collection name\n- `updates.description` (optional) - New description\n- `updates.fields` (optional) - Updated field definitions\n\n**Returns:** `Promise<Collection>`\n\n**Example:**\n```typescript\nconst updated = await krapi.collections.update('project-id', 'tasks', {\n  description: 'Updated description'\n});\n```\n\n#### `delete(projectId: string, collectionName: string)`\n\nDelete a collection and all its documents.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `collectionName` (required) - Collection name\n\n**Returns:** `Promise<{ success: boolean }>`\n\n**Example:**\n```typescript\nconst result = await krapi.collections.delete('project-id', 'tasks');\nif (result.success) {\n  console.log('Collection deleted');\n}\n```\n\n#### `getSchema(projectId: string, collectionName: string)`\n\nGet the complete schema definition for a collection.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `collectionName` (required) - Collection name\n\n**Returns:** `Promise<Collection>`\n\n**Example:**\n```typescript\nconst schema = await krapi.collections.getSchema('project-id', 'tasks');\nconsole.log('Schema:', JSON.stringify(schema, null, 2));\n```\n\n#### `validateSchema(projectId: string, collectionName: string)`\n\nValidate a collection's schema for issues.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `collectionName` (required) - Collection name\n\n**Returns:** `Promise<{ valid: boolean; issues: Array<{ type: string; field?: string; message: string; severity: 'error' | 'warning' | 'info' }> }>`\n\n**Example:**\n```typescript\nconst validation = await krapi.collections.validateSchema('project-id', 'tasks');\nif (!validation.valid) {\n  validation.issues.forEach(issue => {\n    console.error(`${issue.severity}: ${issue.message}`);\n  });\n}\n```\n\n#### `getStatistics(projectId: string, collectionName: string)`\n\nGet collection statistics.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `collectionName` (required) - Collection name\n\n**Returns:** `Promise<{ total_documents: number; total_size_bytes: number }>`\n\n**Example:**\n```typescript\nconst stats = await krapi.collections.getStatistics('project-id', 'tasks');\nconsole.log(`Total documents: ${stats.total_documents}`);\nconsole.log(`Size: ${stats.total_size_bytes} bytes`);\n```\n\n---\n\n## Documents Service\n\nThe Documents service (`krapi.documents`) manages documents (records) within collections. Documents are JSON objects that conform to their collection's schema.\n\n### Overview\n\nDocuments provide:\n- **CRUD Operations** - Create, read, update, delete documents\n- **Querying** - Filter, search, and paginate documents\n- **Bulk Operations** - Efficient batch processing\n- **Aggregation** - Group and analyze document data\n\n### Methods\n\n#### `create(projectId: string, collectionName: string, documentData: { data: Record<string, unknown>; created_by?: string })`\n\nCreate a new document in a collection.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `collectionName` (required) - Collection name\n- `documentData.data` (required) - Document data object (must conform to collection schema)\n- `documentData.created_by` (optional) - User ID who created the document\n\n**Returns:** `Promise<Document>`\n\n**Example:**\n```typescript\nconst document = await krapi.documents.create('project-id', 'tasks', {\n  data: {\n    title: 'Complete documentation',\n    completed: false,\n    priority: 3,\n    due_date: '2024-12-31'\n  },\n  created_by: 'user-id'\n});\n\nconsole.log('Created document:', document.id);\n```\n\n#### `get(projectId: string, collectionName: string, documentId: string)`\n\nGet a document by ID.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `collectionName` (required) - Collection name\n- `documentId` (required) - Document UUID\n\n**Returns:** `Promise<Document>`\n\n**Example:**\n```typescript\nconst document = await krapi.documents.get('project-id', 'tasks', 'doc-id');\nconsole.log('Document:', document.data);\n```\n\n#### `getAll(projectId: string, collectionName: string, options?: { filter?: Record<string, unknown>; limit?: number; offset?: number; orderBy?: string; order?: 'asc' | 'desc'; search?: string })`\n\nList documents with filtering, sorting, and pagination.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `collectionName` (required) - Collection name\n- `options.filter` (optional) - Filter criteria object (e.g., `{ completed: false }`)\n- `options.limit` (optional) - Maximum number of results\n- `options.offset` (optional) - Number of results to skip\n- `options.orderBy` (optional) - Field name to sort by\n- `options.order` (optional) - Sort order ('asc' or 'desc')\n- `options.search` (optional) - Text search query\n\n**Returns:** `Promise<Document[]>`\n\n**Example:**\n```typescript\n// Get all documents\nconst all = await krapi.documents.getAll('project-id', 'tasks');\n\n// Filter and paginate\nconst incomplete = await krapi.documents.getAll('project-id', 'tasks', {\n  filter: { completed: false },\n  limit: 10,\n  offset: 0,\n  orderBy: 'due_date',\n  order: 'asc'\n});\n\n// Search\nconst searchResults = await krapi.documents.getAll('project-id', 'tasks', {\n  search: 'documentation',\n  limit: 20\n});\n```\n\n#### `update(projectId: string, collectionName: string, documentId: string, updateData: { data: Record<string, unknown>; updated_by?: string })`\n\nUpdate a document.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `collectionName` (required) - Collection name\n- `documentId` (required) - Document UUID\n- `updateData.data` (required) - Updated data object (partial updates supported)\n- `updateData.updated_by` (optional) - User ID who updated the document\n\n**Returns:** `Promise<Document>`\n\n**Example:**\n```typescript\nconst updated = await krapi.documents.update('project-id', 'tasks', 'doc-id', {\n  data: {\n    completed: true,\n    completed_at: new Date().toISOString()\n  },\n  updated_by: 'user-id'\n});\n```\n\n#### `delete(projectId: string, collectionName: string, documentId: string, deletedBy?: string)`\n\nDelete a document.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `collectionName` (required) - Collection name\n- `documentId` (required) - Document UUID\n- `deletedBy` (optional) - User ID who deleted the document\n\n**Returns:** `Promise<{ success: boolean }>`\n\n**Example:**\n```typescript\nconst result = await krapi.documents.delete('project-id', 'tasks', 'doc-id', 'user-id');\nif (result.success) {\n  console.log('Document deleted');\n}\n```\n\n#### `search(projectId: string, collectionName: string, query: { text?: string; fields?: string[]; filters?: Record<string, unknown>; limit?: number; offset?: number })`\n\nSearch documents with full-text search.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `collectionName` (required) - Collection name\n- `query.text` (optional) - Text to search for\n- `query.fields` (optional) - Fields to search in (default: all text fields)\n- `query.filters` (optional) - Additional filter criteria\n- `query.limit` (optional) - Maximum number of results\n- `query.offset` (optional) - Number of results to skip\n\n**Returns:** `Promise<Document[]>`\n\n**Example:**\n```typescript\nconst results = await krapi.documents.search('project-id', 'tasks', {\n  text: 'documentation',\n  fields: ['title', 'description'],\n  filters: { completed: false },\n  limit: 10\n});\n```\n\n#### `bulkCreate(projectId: string, collectionName: string, documents: Array<{ data: Record<string, unknown>; created_by?: string }>)`\n\nCreate multiple documents in a single operation.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `collectionName` (required) - Collection name\n- `documents` (required) - Array of document data objects\n\n**Returns:** `Promise<{ created: Document[]; errors: Array<{ index: number; error: string }> }>`\n\n**Example:**\n```typescript\nconst result = await krapi.documents.bulkCreate('project-id', 'tasks', [\n  { data: { title: 'Task 1', completed: false } },\n  { data: { title: 'Task 2', completed: false } },\n  { data: { title: 'Task 3', completed: true } }\n]);\n\nconsole.log(`Created ${result.created.length} documents`);\nif (result.errors.length > 0) {\n  console.error('Errors:', result.errors);\n}\n```\n\n#### `bulkUpdate(projectId: string, collectionName: string, updates: Array<{ id: string; data: Record<string, unknown>; updated_by?: string }>)`\n\nUpdate multiple documents in a single operation.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `collectionName` (required) - Collection name\n- `updates` (required) - Array of update objects with document ID and data\n\n**Returns:** `Promise<{ updated: Document[]; errors: Array<{ id: string; error: string }> }>`\n\n**Example:**\n```typescript\nconst result = await krapi.documents.bulkUpdate('project-id', 'tasks', [\n  { id: 'doc-1', data: { completed: true } },\n  { id: 'doc-2', data: { priority: 5 } }\n]);\n\nconsole.log(`Updated ${result.updated.length} documents`);\n```\n\n#### `bulkDelete(projectId: string, collectionName: string, documentIds: string[], deletedBy?: string)`\n\nDelete multiple documents in a single operation.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `collectionName` (required) - Collection name\n- `documentIds` (required) - Array of document UUIDs\n- `deletedBy` (optional) - User ID who deleted the documents\n\n**Returns:** `Promise<{ deleted_count: number; errors: Array<{ id: string; error: string }> }>`\n\n**Example:**\n```typescript\nconst result = await krapi.documents.bulkDelete('project-id', 'tasks', [\n  'doc-id-1',\n  'doc-id-2',\n  'doc-id-3'\n], 'user-id');\n\nconsole.log(`Deleted ${result.deleted_count} documents`);\n```\n\n#### `count(projectId: string, collectionName: string, filter?: Record<string, unknown>)`\n\nCount documents matching a filter.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `collectionName` (required) - Collection name\n- `filter` (optional) - Filter criteria\n\n**Returns:** `Promise<{ count: number }>`\n\n**Example:**\n```typescript\n// Count all documents\nconst total = await krapi.documents.count('project-id', 'tasks');\n\n// Count with filter\nconst incomplete = await krapi.documents.count('project-id', 'tasks', {\n  completed: false\n});\n```\n\n#### `aggregate(projectId: string, collectionName: string, aggregation: { group_by?: string[]; aggregations: Record<string, { type: 'count' | 'sum' | 'avg' | 'min' | 'max'; field?: string }>; filters?: Record<string, unknown> })`\n\nAggregate document data with grouping and calculations.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `collectionName` (required) - Collection name\n- `aggregation.group_by` (optional) - Fields to group by\n- `aggregation.aggregations` (required) - Aggregation operations:\n  - `type` - Operation type ('count', 'sum', 'avg', 'min', 'max')\n  - `field` - Field name to aggregate (required for sum/avg/min/max)\n- `aggregation.filters` (optional) - Filter criteria\n\n**Returns:** `Promise<{ groups: Record<string, Record<string, number>>; total_groups: number }>`\n\n**Example:**\n```typescript\n// Group by status and count\nconst result = await krapi.documents.aggregate('project-id', 'tasks', {\n  group_by: ['status'],\n  aggregations: {\n    count: { type: 'count' },\n    avg_priority: { type: 'avg', field: 'priority' }\n  },\n  filters: { completed: false }\n});\n\nconsole.log('Groups:', result.groups);\nconsole.log('Total groups:', result.total_groups);\n```\n\n---\n\n## Users Service\n\nThe Users service (`krapi.users`) manages project users, roles, permissions, and user activity within a project.\n\n### Overview\n\nUsers provide:\n- **User Management** - Create, update, and delete project users\n- **Role Management** - Assign and update user roles\n- **Permissions** - Fine-grained permission control\n- **Activity Tracking** - User activity logs and statistics\n\n### Methods\n\n#### `getAll(projectId: string, options?: { limit?: number; offset?: number; search?: string; role?: string; status?: string })`\n\nList all users in a project with optional filtering.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `options.limit` (optional) - Maximum number of results\n- `options.offset` (optional) - Number of results to skip\n- `options.search` (optional) - Search query (searches username, email, first_name, last_name)\n- `options.role` (optional) - Filter by role\n- `options.status` (optional) - Filter by status ('active', 'inactive', etc.)\n\n**Returns:** `Promise<ProjectUser[]>`\n\n**Example:**\n```typescript\n// Get all users\nconst users = await krapi.users.getAll('project-id');\n\n// Filter by role\nconst admins = await krapi.users.getAll('project-id', {\n  role: 'admin',\n  limit: 10\n});\n\n// Search users\nconst searchResults = await krapi.users.getAll('project-id', {\n  search: 'john',\n  status: 'active'\n});\n```\n\n#### `get(projectId: string, userId: string)`\n\nGet a user by ID.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `userId` (required) - User UUID\n\n**Returns:** `Promise<ProjectUser>`\n\n**Example:**\n```typescript\nconst user = await krapi.users.get('project-id', 'user-id');\nconsole.log('User:', user.username, user.email);\n```\n\n#### `create(projectId: string, userData: { username: string; email: string; password: string; first_name?: string; last_name?: string; role?: string; permissions?: string[]; metadata?: Record<string, unknown> })`\n\nCreate a new project user.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `userData.username` (required) - Username (must be unique within project)\n- `userData.email` (required) - Email address (must be unique within project)\n- `userData.password` (required) - Password (will be hashed)\n- `userData.first_name` (optional) - First name\n- `userData.last_name` (optional) - Last name\n- `userData.role` (optional) - User role (default: 'user')\n- `userData.permissions` (optional) - Array of permission strings\n- `userData.metadata` (optional) - Additional metadata object\n\n**Returns:** `Promise<ProjectUser>`\n\n**Example:**\n```typescript\nconst user = await krapi.users.create('project-id', {\n  username: 'johndoe',\n  email: 'john@example.com',\n  password: 'securepassword123',\n  first_name: 'John',\n  last_name: 'Doe',\n  role: 'editor',\n  permissions: ['read', 'write'],\n  metadata: {\n    department: 'Engineering',\n    location: 'Remote'\n  }\n});\n\nconsole.log('Created user:', user.id);\n```\n\n#### `update(projectId: string, userId: string, updates: { username?: string; email?: string; first_name?: string; last_name?: string; role?: string; permissions?: string[]; is_active?: boolean; metadata?: Record<string, unknown> })`\n\nUpdate user properties.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `userId` (required) - User UUID\n- `updates` (required) - Object with fields to update (all fields optional)\n\n**Returns:** `Promise<ProjectUser>`\n\n**Example:**\n```typescript\nconst updated = await krapi.users.update('project-id', 'user-id', {\n  first_name: 'Jane',\n  role: 'admin',\n  is_active: true\n});\n```\n\n#### `delete(projectId: string, userId: string)`\n\nDelete a user from the project.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `userId` (required) - User UUID\n\n**Returns:** `Promise<{ success: boolean }>`\n\n**Example:**\n```typescript\nconst result = await krapi.users.delete('project-id', 'user-id');\nif (result.success) {\n  console.log('User deleted');\n}\n```\n\n#### `updateRole(projectId: string, userId: string, role: string)`\n\nUpdate a user's role.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `userId` (required) - User UUID\n- `role` (required) - New role name\n\n**Returns:** `Promise<ProjectUser>`\n\n**Example:**\n```typescript\nconst user = await krapi.users.updateRole('project-id', 'user-id', 'admin');\nconsole.log('Updated role:', user.role);\n```\n\n#### `updatePermissions(projectId: string, userId: string, permissions: string[])`\n\nUpdate a user's permissions.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `userId` (required) - User UUID\n- `permissions` (required) - Array of permission strings\n\n**Returns:** `Promise<ProjectUser>`\n\n**Example:**\n```typescript\nconst user = await krapi.users.updatePermissions('project-id', 'user-id', [\n  'read',\n  'write',\n  'delete',\n  'admin'\n]);\nconsole.log('Updated permissions:', user.permissions);\n```\n\n#### `getActivity(projectId: string, userId: string, options?: { limit?: number; offset?: number; start_date?: string; end_date?: string })`\n\nGet user activity log.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `userId` (required) - User UUID\n- `options.limit` (optional) - Maximum number of results\n- `options.offset` (optional) - Number of results to skip\n- `options.start_date` (optional) - Start date (ISO string)\n- `options.end_date` (optional) - End date (ISO string)\n\n**Returns:** `Promise<Array<{ id: string; action: string; timestamp: string; details: Record<string, unknown> }>>`\n\n**Example:**\n```typescript\n// Get recent activity\nconst activity = await krapi.users.getActivity('project-id', 'user-id', {\n  limit: 50\n});\n\n// Get activity for date range\nconst rangeActivity = await krapi.users.getActivity('project-id', 'user-id', {\n  start_date: '2024-01-01T00:00:00Z',\n  end_date: '2024-01-31T23:59:59Z',\n  limit: 100\n});\n```\n\n#### `getStatistics(projectId: string)`\n\nGet user statistics for the project.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n\n**Returns:** `Promise<{ total_users: number; active_users: number; users_by_role: Record<string, number>; recent_logins: number }>`\n\n**Example:**\n```typescript\nconst stats = await krapi.users.getStatistics('project-id');\nconsole.log(`Total users: ${stats.total_users}`);\nconsole.log(`Active users: ${stats.active_users}`);\nconsole.log('Users by role:', stats.users_by_role);\nconsole.log(`Recent logins: ${stats.recent_logins}`);\n```\n\n---\n\n## Storage Service\n\nThe Storage service (`krapi.storage`) manages file uploads, downloads, folder organization, and storage statistics within projects.\n\n### Overview\n\nStorage provides:\n- **File Management** - Upload, download, and delete files\n- **Folder Organization** - Hierarchical folder structure\n- **Metadata** - File and folder metadata\n- **Statistics** - Storage usage and quota information\n- **URL Generation** - Temporary signed URLs for file access\n\n### Methods\n\n#### `uploadFile(projectId: string, file: File | Blob, options?: { folder?: string; filename?: string; metadata?: Record<string, unknown>; public?: boolean })`\n\nUpload a file to project storage.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `file` (required) - File or Blob object to upload\n- `options.folder` (optional) - Target folder path or folder ID\n- `options.filename` (optional) - Custom filename (default: original filename)\n- `options.metadata` (optional) - File metadata object\n- `options.public` (optional) - Whether file is publicly accessible (default: false)\n\n**Returns:** `Promise<FileInfo>`\n\n**Example:**\n```typescript\n// Upload from File input\nconst fileInput = document.querySelector('input[type=\"file\"]');\nconst file = fileInput.files[0];\n\nconst fileInfo = await krapi.storage.uploadFile('project-id', file, {\n  folder: 'uploads',\n  filename: 'custom-name.jpg',\n  metadata: {\n    uploaded_by: 'user-id',\n    category: 'images'\n  },\n  public: true\n});\n\nconsole.log('Uploaded file:', fileInfo.id);\n```\n\n#### `downloadFile(projectId: string, fileId: string)`\n\nDownload a file as a Blob.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `fileId` (required) - File UUID\n\n**Returns:** `Promise<Blob>`\n\n**Example:**\n```typescript\nconst blob = await krapi.storage.downloadFile('project-id', 'file-id');\n\n// Use the blob\nconst url = URL.createObjectURL(blob);\nconst a = document.createElement('a');\na.href = url;\na.download = 'filename.ext';\na.click();\n```\n\n#### `getFile(projectId: string, fileId: string)`\n\nGet file information and metadata.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `fileId` (required) - File UUID\n\n**Returns:** `Promise<FileInfo>`\n\n**Example:**\n```typescript\nconst fileInfo = await krapi.storage.getFile('project-id', 'file-id');\nconsole.log('File name:', fileInfo.filename);\nconsole.log('Size:', fileInfo.size_bytes);\nconsole.log('Type:', fileInfo.content_type);\nconsole.log('Metadata:', fileInfo.metadata);\n```\n\n#### `deleteFile(projectId: string, fileId: string)`\n\nDelete a file.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `fileId` (required) - File UUID\n\n**Returns:** `Promise<{ success: boolean }>`\n\n**Example:**\n```typescript\nconst result = await krapi.storage.deleteFile('project-id', 'file-id');\nif (result.success) {\n  console.log('File deleted');\n}\n```\n\n#### `getFiles(projectId: string, options?: { folder?: string; limit?: number; offset?: number; search?: string; type?: string })`\n\nList files with filtering and pagination.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `options.folder` (optional) - Filter by folder path or ID\n- `options.limit` (optional) - Maximum number of results\n- `options.offset` (optional) - Number of results to skip\n- `options.search` (optional) - Search query (searches filename)\n- `options.type` (optional) - Filter by file type/MIME type\n\n**Returns:** `Promise<FileInfo[]>`\n\n**Example:**\n```typescript\n// Get all files\nconst allFiles = await krapi.storage.getFiles('project-id');\n\n// Get files in folder\nconst folderFiles = await krapi.storage.getFiles('project-id', {\n  folder: 'uploads/images',\n  limit: 20\n});\n\n// Search files\nconst searchResults = await krapi.storage.getFiles('project-id', {\n  search: 'photo',\n  type: 'image/jpeg'\n});\n```\n\n#### `createFolder(projectId: string, folderData: { name: string; parent_folder_id?: string; metadata?: Record<string, unknown> })`\n\nCreate a folder.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `folderData.name` (required) - Folder name\n- `folderData.parent_folder_id` (optional) - Parent folder ID (for nested folders)\n- `folderData.metadata` (optional) - Folder metadata object\n\n**Returns:** `Promise<{ id: string; name: string; parent_folder_id?: string; metadata?: Record<string, unknown> }>`\n\n**Example:**\n```typescript\n// Create root folder\nconst folder = await krapi.storage.createFolder('project-id', {\n  name: 'documents'\n});\n\n// Create nested folder\nconst subfolder = await krapi.storage.createFolder('project-id', {\n  name: 'images',\n  parent_folder_id: folder.id,\n  metadata: { category: 'photos' }\n});\n```\n\n#### `getFolders(projectId: string, parentFolderId?: string)`\n\nList folders, optionally filtered by parent folder.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `parentFolderId` (optional) - Parent folder ID (to get subfolders)\n\n**Returns:** `Promise<Array<{ id: string; name: string; parent_folder_id?: string; metadata?: Record<string, unknown> }>>`\n\n**Example:**\n```typescript\n// Get root folders\nconst rootFolders = await krapi.storage.getFolders('project-id');\n\n// Get subfolders\nconst subfolders = await krapi.storage.getFolders('project-id', 'parent-folder-id');\n```\n\n#### `deleteFolder(projectId: string, folderId: string)`\n\nDelete a folder and all its contents.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `folderId` (required) - Folder UUID\n\n**Returns:** `Promise<{ success: boolean }>`\n\n**Example:**\n```typescript\nconst result = await krapi.storage.deleteFolder('project-id', 'folder-id');\nif (result.success) {\n  console.log('Folder deleted');\n}\n```\n\n#### `getStatistics(projectId: string)`\n\nGet storage statistics for the project.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n\n**Returns:** `Promise<{ total_files: number; total_size_bytes: number; files_by_type: Record<string, number>; storage_quota: { used: number; limit: number; percentage: number } }>`\n\n**Example:**\n```typescript\nconst stats = await krapi.storage.getStatistics('project-id');\nconsole.log(`Total files: ${stats.total_files}`);\nconsole.log(`Total size: ${stats.total_size_bytes} bytes`);\nconsole.log(`Quota used: ${stats.storage_quota.percentage}%`);\nconsole.log('Files by type:', stats.files_by_type);\n```\n\n#### `getFileUrl(projectId: string, fileId: string, options?: { expires_in?: number; download?: boolean })`\n\nGet a temporary signed URL for file access.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `fileId` (required) - File UUID\n- `options.expires_in` (optional) - URL expiration time in seconds (default: 3600)\n- `options.download` (optional) - Whether to force download (default: false)\n\n**Returns:** `Promise<{ url: string; expires_at?: string }>`\n\n**Example:**\n```typescript\n// Get temporary URL (expires in 1 hour)\nconst urlResult = await krapi.storage.getFileUrl('project-id', 'file-id', {\n  expires_in: 3600\n});\nconsole.log('File URL:', urlResult.url);\nconsole.log('Expires at:', urlResult.expires_at);\n\n// Get download URL\nconst downloadUrl = await krapi.storage.getFileUrl('project-id', 'file-id', {\n  expires_in: 1800,\n  download: true\n});\n```\n\n---\n\n## Email Service\n\nThe Email service (`krapi.email`) manages email configuration, templates, and sending emails within projects.\n\n### Overview\n\nEmail provides:\n- **Configuration** - Email provider setup (SMTP, SendGrid, etc.)\n- **Templates** - Reusable email templates with variables\n- **Sending** - Send emails with or without templates\n- **History** - Email sending history and status tracking\n\n### Methods\n\n#### `getConfig(projectId: string)`\n\nGet email configuration for the project.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n\n**Returns:** `Promise<EmailConfig>`\n\n**Example:**\n```typescript\nconst config = await krapi.email.getConfig('project-id');\nconsole.log('Provider:', config.provider);\nconsole.log('Settings:', config.settings);\n```\n\n#### `updateConfig(projectId: string, config: { provider: string; settings: Record<string, unknown> })`\n\nUpdate email configuration.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `config.provider` (required) - Email provider name ('smtp', 'sendgrid', 'ses', etc.)\n- `config.settings` (required) - Provider-specific settings object\n\n**Returns:** `Promise<EmailConfig>`\n\n**Example:**\n```typescript\n// SMTP configuration\nconst updated = await krapi.email.updateConfig('project-id', {\n  provider: 'smtp',\n  settings: {\n    host: 'smtp.example.com',\n    port: 587,\n    secure: false,\n    auth: {\n      user: 'user@example.com',\n      pass: 'password'\n    }\n  }\n});\n```\n\n#### `testConfig(projectId: string, testEmail: string)`\n\nTest email configuration by sending a test email.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `testEmail` (required) - Email address to send test to\n\n**Returns:** `Promise<{ success: boolean; message?: string }>`\n\n**Example:**\n```typescript\nconst result = await krapi.email.testConfig('project-id', 'test@example.com');\nif (result.success) {\n  console.log('Email configuration is working');\n} else {\n  console.error('Test failed:', result.message);\n}\n```\n\n#### `getTemplates(projectId: string, options?: { limit?: number; offset?: number; search?: string })`\n\nList email templates.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `options.limit` (optional) - Maximum number of results\n- `options.offset` (optional) - Number of results to skip\n- `options.search` (optional) - Search query\n\n**Returns:** `Promise<EmailTemplate[]>`\n\n**Example:**\n```typescript\nconst templates = await krapi.email.getTemplates('project-id', {\n  search: 'welcome',\n  limit: 10\n});\n```\n\n#### `getTemplate(projectId: string, templateId: string)`\n\nGet an email template by ID.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `templateId` (required) - Template UUID\n\n**Returns:** `Promise<EmailTemplate>`\n\n**Example:**\n```typescript\nconst template = await krapi.email.getTemplate('project-id', 'template-id');\nconsole.log('Template:', template.name);\nconsole.log('Subject:', template.subject);\n```\n\n#### `createTemplate(projectId: string, template: { name: string; subject: string; body: string; variables: string[]; type?: string })`\n\nCreate an email template.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `template.name` (required) - Template name\n- `template.subject` (required) - Email subject (can include variables like {{name}})\n- `template.body` (required) - Email body (can include variables like {{name}})\n- `template.variables` (required) - Array of variable names used in template\n- `template.type` (optional) - Template type ('html', 'text', etc.)\n\n**Returns:** `Promise<EmailTemplate>`\n\n**Example:**\n```typescript\nconst template = await krapi.email.createTemplate('project-id', {\n  name: 'welcome-email',\n  subject: 'Welcome to {{app_name}}, {{user_name}}!',\n  body: '<h1>Welcome {{user_name}}!</h1><p>Thanks for joining {{app_name}}.</p>',\n  variables: ['app_name', 'user_name'],\n  type: 'html'\n});\n```\n\n#### `updateTemplate(projectId: string, templateId: string, updates: Partial<EmailTemplate>)`\n\nUpdate an email template.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `templateId` (required) - Template UUID\n- `updates` (required) - Partial template object with fields to update\n\n**Returns:** `Promise<EmailTemplate>`\n\n**Example:**\n```typescript\nconst updated = await krapi.email.updateTemplate('project-id', 'template-id', {\n  subject: 'Updated subject',\n  body: 'Updated body'\n});\n```\n\n#### `deleteTemplate(projectId: string, templateId: string)`\n\nDelete an email template.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `templateId` (required) - Template UUID\n\n**Returns:** `Promise<{ success: boolean }>`\n\n**Example:**\n```typescript\nconst result = await krapi.email.deleteTemplate('project-id', 'template-id');\nif (result.success) {\n  console.log('Template deleted');\n}\n```\n\n#### `send(projectId: string, emailData: { to: string | string[]; cc?: string | string[]; bcc?: string | string[]; subject: string; body: string; template_id?: string; template_variables?: Record<string, unknown>; attachments?: Array<{ filename: string; content: string | Buffer; content_type?: string }> })`\n\nSend an email.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `emailData.to` (required) - Recipient email(s) - string or array\n- `emailData.cc` (optional) - CC recipient(s)\n- `emailData.bcc` (optional) - BCC recipient(s)\n- `emailData.subject` (required) - Email subject\n- `emailData.body` (required) - Email body\n- `emailData.template_id` (optional) - Template ID to use\n- `emailData.template_variables` (optional) - Variables for template\n- `emailData.attachments` (optional) - Array of attachment objects\n\n**Returns:** `Promise<{ success: boolean; message_id?: string; error?: string }>`\n\n**Example:**\n```typescript\n// Send simple email\nconst result = await krapi.email.send('project-id', {\n  to: 'user@example.com',\n  subject: 'Hello',\n  body: 'This is a test email'\n});\n\n// Send with template\nconst templateResult = await krapi.email.send('project-id', {\n  to: 'user@example.com',\n  template_id: 'welcome-email',\n  template_variables: {\n    app_name: 'My App',\n    user_name: 'John Doe'\n  }\n});\n\n// Send with attachments\nconst attachmentResult = await krapi.email.send('project-id', {\n  to: ['user1@example.com', 'user2@example.com'],\n  subject: 'Report',\n  body: 'Please find attached report',\n  attachments: [\n    {\n      filename: 'report.pdf',\n      content: pdfBuffer,\n      content_type: 'application/pdf'\n    }\n  ]\n});\n```\n\n#### `getHistory(projectId: string, options?: { limit?: number; offset?: number; status?: string; start_date?: string; end_date?: string })`\n\nGet email sending history.\n\n**Parameters:**\n- `projectId` (required) - Project UUID\n- `options.limit` (optional) - Maximum number of results\n- `options.offset` (optional) - Number of results to skip\n- `options.status` (optional) - Filter by status ('sent', 'failed', 'pending')\n- `options.start_date` (optional) - Start date (ISO string)\n- `options.end_date` (optional) - End date (ISO string)\n\n**Returns:** `Promise<Array<{ id: string; to: string; subject: string; status: string; sent_at: string }>>`\n\n**Example:**\n```typescript\n// Get recent emails\nconst history = await krapi.email.getHistory('project-id', {\n  limit: 50,\n  status: 'sent'\n});\n\n// Get emails for date range\nconst rangeHistory = await krapi.email.getHistory('project-id', {\n  start_date: '2024-01-01T00:00:00Z',\n  end_date: '2024-01-31T23:59:59Z'\n});\n```\n\n---\n\n## Admin Service\n\nThe Admin service (`krapi.admin`) provides administrative operations for managing admin users, project API keys, and system maintenance. Most operations are available in server mode only.\n\n### Overview\n\nAdmin provides:\n- **User Management** - Create, update, and delete admin users\n- **API Key Management** - Manage project API keys\n- **System Maintenance** - Database repair and default admin creation\n\n### Methods\n\n#### `getAllUsers(options?: { limit?: number; offset?: number; search?: string; role?: string; status?: string; project_id?: string })`\n\nList all admin users.\n\n**Returns:** `Promise<AdminUser[]>`\n\n**Example:**\n```typescript\nconst users = await krapi.admin.getAllUsers({\n  role: 'admin',\n  limit: 10\n});\n```\n\n#### `getUser(userId: string)`\n\nGet an admin user by ID.\n\n**Returns:** `Promise<AdminUser>`\n\n#### `createUser(userData: { username: string; email: string; password: string; first_name?: string; last_name?: string; role: 'admin' | 'user'; project_id?: string; permissions?: string[]; metadata?: Record<string, unknown> })`\n\nCreate a new admin user.\n\n**Returns:** `Promise<AdminUser>`\n\n**Example:**\n```typescript\nconst admin = await krapi.admin.createUser({\n  username: 'newadmin',\n  email: 'admin@example.com',\n  password: 'securepassword',\n  role: 'admin',\n  permissions: ['all']\n});\n```\n\n#### `updateUser(userId: string, updates: Partial<AdminUser>)`\n\nUpdate an admin user.\n\n**Returns:** `Promise<AdminUser>`\n\n#### `deleteUser(userId: string)`\n\nDelete an admin user.\n\n**Returns:** `Promise<{ success: boolean }>`\n\n#### `getProjectApiKeys(projectId: string)`\n\nGet all API keys for a project.\n\n**Returns:** `Promise<ApiKey[]>`\n\n#### `getProjectApiKey(keyId: string, projectId: string)`\n\nGet a specific API key.\n\n**Returns:** `Promise<ApiKey | null>`\n\n#### `createProjectApiKey(projectId: string, keyData: Partial<ApiKey>)`\n\nCreate a new API key for a project.\n\n**Returns:** `Promise<ApiKey>`\n\n#### `updateProjectApiKey(keyId: string, projectId: string, updates: Partial<ApiKey>)`\n\nUpdate a project API key.\n\n**Returns:** `Promise<ApiKey>`\n\n#### `deleteProjectApiKey(keyId: string, projectId: string)`\n\nDelete a project API key.\n\n**Returns:** `Promise<boolean>`\n\n#### `regenerateProjectApiKey(keyId: string, projectId: string)`\n\nRegenerate a project API key.\n\n**Returns:** `Promise<ApiKey>`\n\n#### `createDefaultAdmin()`\n\nCreate the default admin user (server mode only).\n\n**Returns:** `Promise<void>`\n\n#### `repairDatabase()`\n\nRepair database issues (server mode only).\n\n**Returns:** `Promise<{ success: boolean; actions: string[] }>`\n\n**Example:**\n```typescript\nconst result = await krapi.admin.repairDatabase();\nconsole.log('Repair actions:', result.actions);\n```\n\n---\n\n## API Keys Service\n\nThe API Keys service (`krapi.apiKeys`) manages project API keys for authentication and authorization. **Note:** API Keys operations are primarily available in server mode through the admin service.\n\n### Methods\n\n#### `getAll(projectId: string, options?: { limit?: number; offset?: number; type?: string; status?: string })`\n\nList all API keys for a project (server mode only).\n\n#### `get(projectId: string, keyId: string)`\n\nGet an API key by ID (server mode only).\n\n#### `create(projectId: string, keyData: { name: string; scopes: string[]; expires_at?: string; rate_limit?: number; metadata?: Record<string, unknown> })`\n\nCreate a new API key (server mode only).\n\n#### `update(projectId: string, keyId: string, updates: Partial<ApiKey>)`\n\nUpdate an API key (server mode only).\n\n#### `delete(projectId: string, keyId: string)`\n\nDelete an API key (server mode only).\n\n#### `regenerate(projectId: string, keyId: string)`\n\nRegenerate an API key, invalidating the old one (server mode only).\n\n#### `validateKey(apiKey: string)`\n\nValidate an API key and get its information.\n\n**Example:**\n```typescript\nconst validation = await krapi.apiKeys.validateKey('api-key-here');\nif (validation.valid) {\n  console.log('Key info:', validation.key_info);\n}\n```\n\n---\n\n## Database Service\n\nThe Database service (`krapi.database`) provides database initialization and health monitoring operations.\n\n### Methods\n\n#### `initialize()`\n\nInitialize the database schema (server mode only). Creates all required tables and default data.\n\n**Returns:** `Promise<{ success: boolean; message: string; tablesCreated: string[]; defaultDataInserted: boolean }>`\n\n**Example:**\n```typescript\n// Server mode only\nawait krapi.connect({ database: dbConnection });\nconst result = await krapi.database.initialize();\nconsole.log('Tables created:', result.tablesCreated);\n```\n\n#### `getHealth()`\n\nGet database health status.\n\n**Returns:** `Promise<{ database: boolean; storage: boolean; email: boolean; overall: boolean; details: Record<string, unknown> }>`\n\n**Example:**\n```typescript\nconst health = await krapi.database.getHealth();\nconsole.log('Database healthy:', health.database);\n```\n\n#### `createDefaultAdmin()`\n\nCreate the default admin user (server mode only).\n\n**Returns:** `Promise<{ success: boolean; message: string; adminUser?: { username: string; email: string } }>`\n\n**Example:**\n```typescript\nconst result = await krapi.database.createDefaultAdmin();\nif (result.success) {\n  console.log('Default admin created:', result.adminUser);\n}\n```\n\n#### `getQueueMetrics()`\n\nGet queue metrics (client mode only).\n\n**Returns:** `Promise<{ queueSize: number; processingCount: number; totalProcessed: number; totalErrors: number; averageWaitTime: number; averageProcessTime: number; queueItems: Array<{ id: string; priority: number; timestamp: number }> }>`\n\n---\n\n## Health Service\n\nThe Health service (`krapi.health`) provides system health monitoring, diagnostics, and database maintenance.\n\n### Methods\n\n#### `check()`\n\nCheck overall system health.\n\n**Returns:** `Promise<{ healthy: boolean; message: string; details?: Record<string, unknown>; version: string }>`\n\n**Example:**\n```typescript\nconst health = await krapi.health.check();\nconsole.log('System healthy:', health.healthy);\nconsole.log('Version:', health.version);\n```\n\n#### `checkDatabase()`\n\nCheck database health specifically.\n\n**Returns:** `Promise<{ healthy: boolean; message: string; details?: Record<string, unknown> }>`\n\n#### `runDiagnostics()`\n\nRun comprehensive health diagnostics.\n\n**Returns:** `Promise<{ tests: Array<{ name: string; passed: boolean; message: string; duration: number }>; summary: { total: number; passed: number; failed: number; duration: number } }>`\n\n**Example:**\n```typescript\nconst diagnostics = await krapi.health.runDiagnostics();\nconsole.log(`Passed:","readmeFilename":"README.md"}