{"_id":"@boringnode/encryption","_rev":"12-61b99d7a139568fd4f842ff440180510","name":"@boringnode/encryption","dist-tags":{"latest":"1.0.1"},"versions":{"0.0.1":{"name":"@boringnode/encryption","version":"0.0.1","keywords":["encryption","crypto"],"author":{"name":"Romain Lanz","email":"romain.lanz@pm.me"},"license":"MIT","_id":"@boringnode/encryption@0.0.1","maintainers":[{"name":"julien-r44","email":"julien@ripouteau.com"},{"name":"romainlanz","email":"romain.lanz+npm@pm.me"}],"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"dist":{"shasum":"4fdbad855f298db86da606fc8bd7e9e12a4b4fe9","tarball":"https://registry.npmjs.org/@boringnode/encryption/-/encryption-0.0.1.tgz","fileCount":55,"integrity":"sha512-UMNeRAFFO3n6dZiFSWaKvTmspcADXCM4azaCEP8vACXuz7VKqkZJRBo32wmJ3kaaAj7akOE0/jh52Lr8vByzWg==","signatures":[{"sig":"MEUCIQCWNyn11R15HKDhHsPxECdtUL71aij9OVAX1yZI9xc45QIgBguP6FSOCXcXC8M8B0S/jkihZJjd3Li03upj99GyeBc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121140},"main":"build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=20.6"},"exports":{".":"./build/index.js","./types":"./build/src/types/*.js","./drivers/*":"./build/src/drivers/*.js"},"gitHead":"dbc2c6805a4a868ff7ce8d2cb65033e3d9ff027f","scripts":{"lint":"eslint .","test":"c8 yarn quick:test","build":"yarn clean && tsup-node","clean":"del-cli build","pretest":"yarn lint","release":"yarn dlx release-it","typecheck":"tsc --noEmit","quick:test":"yarn node --enable-source-maps --import=ts-node-maintained/register/esm bin/test.ts"},"_npmUser":{"name":"romainlanz","email":"romain.lanz+npm@pm.me"},"prettier":"@adonisjs/prettier-config","release-it":{"git":{"tagName":"v${version}","commitMessage":"chore(release): ${version}","tagAnnotation":"v${version}"},"github":{"web":true,"release":true,"releaseName":"v${version}"}},"_npmVersion":"11.3.0","description":"A framework agnostic encryption library","directories":{},"_nodeVersion":"24.1.0","dependencies":{"@poppinss/utils":"^6.9.4"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.9.2","devDependencies":{"c8":"^10.1.3","tsup":"^8.5.0","eslint":"^9.29.0","del-cli":"^6.0.0","prettier":"^3.5.3","@swc/core":"^1.12.1","release-it":"^19.0.3","typescript":"^5.8.3","@types/node":"^22.15.31","@japa/assert":"^4.0.1","@japa/runner":"^4.2.0","@japa/expect-type":"^2.0.3","@adonisjs/tsconfig":"^1.4.1","ts-node-maintained":"^10.9.5","@adonisjs/eslint-config":"^2.1.0","@adonisjs/prettier-config":"^1.4.5"},"_npmOperationalInternal":{"tmp":"tmp/encryption_0.0.1_1749840979706_0.9278716015142765","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@boringnode/encryption","version":"0.0.2","keywords":["encryption","crypto"],"author":{"name":"Romain Lanz","email":"romain.lanz@pm.me"},"license":"MIT","_id":"@boringnode/encryption@0.0.2","maintainers":[{"name":"julien-r44","email":"julien@ripouteau.com"},{"name":"romainlanz","email":"romain.lanz+npm@pm.me"}],"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"dist":{"shasum":"4e3d2e3958c01611c3a5fcd92b2990e3bc269e8b","tarball":"https://registry.npmjs.org/@boringnode/encryption/-/encryption-0.0.2.tgz","fileCount":26,"integrity":"sha512-bRk8s4oiwmENGDl8bNYDtMlmjOQLiBthqCHLiKg0oBjcw3UugHIEzP6hqok/qaBezfWt/OvdwGFCsa5l5HdRaw==","signatures":[{"sig":"MEQCICgF4zAOZ42Z57jtmc9mTzUBfk5QxloG7cDXKfPAHaCLAiBPASNf0TM/ziWeOLEHfsPfpK37r8xYa0Fp0FKEVjr+CQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63147},"main":"build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=20.6"},"exports":{".":"./build/index.js","./types/*":"./build/src/types/*.js","./drivers/*":"./build/src/drivers/*.js"},"gitHead":"957cfb8d530e84642518dbf2c0a1abf466ae9d6e","scripts":{"lint":"eslint .","test":"c8 yarn quick:test","build":"yarn clean && tsup-node","clean":"del-cli build","pretest":"yarn lint","release":"yarn dlx release-it","typecheck":"tsc --noEmit","quick:test":"yarn node --enable-source-maps --import=ts-node-maintained/register/esm bin/test.ts"},"_npmUser":{"name":"romainlanz","email":"romain.lanz+npm@pm.me"},"prettier":"@adonisjs/prettier-config","release-it":{"git":{"tagName":"v${version}","commitMessage":"chore(release): ${version}","tagAnnotation":"v${version}"},"github":{"web":true,"release":true,"releaseName":"v${version}"}},"_npmVersion":"11.3.0","description":"A framework agnostic encryption library","directories":{},"_nodeVersion":"24.1.0","dependencies":{"@poppinss/utils":"^6.9.4"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.9.2","devDependencies":{"c8":"^10.1.3","tsup":"^8.5.0","eslint":"^9.29.0","del-cli":"^6.0.0","prettier":"^3.5.3","@swc/core":"^1.12.1","release-it":"^19.0.3","typescript":"^5.8.3","@types/node":"^22.15.31","@japa/assert":"^4.0.1","@japa/runner":"^4.2.0","@japa/expect-type":"^2.0.3","@adonisjs/tsconfig":"^1.4.1","ts-node-maintained":"^10.9.5","@adonisjs/eslint-config":"^2.1.0","@adonisjs/prettier-config":"^1.4.5"},"_npmOperationalInternal":{"tmp":"tmp/encryption_0.0.2_1749841315163_0.18813209454812418","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@boringnode/encryption","version":"0.1.0","keywords":["encryption","crypto"],"author":{"name":"Romain Lanz","email":"romain.lanz@pm.me"},"license":"MIT","_id":"@boringnode/encryption@0.1.0","maintainers":[{"name":"julien-r44","email":"julien@ripouteau.com"},{"name":"romainlanz","email":"romain.lanz+npm@pm.me"}],"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"dist":{"shasum":"e9f78ac6f935641bd4d24a79be4df27abef550e7","tarball":"https://registry.npmjs.org/@boringnode/encryption/-/encryption-0.1.0.tgz","fileCount":31,"integrity":"sha512-8BggB/vKwLQDfEppzXGzb+wbVoKO0K4cUh1iJnivl7lZqrDf8tCOXCvopc+rdVZ0ozy3V2vZ4fmbIzXjnvCnSg==","signatures":[{"sig":"MEQCIAGyftjRVku5GQ2EsY7kvq9XGF5tb5K04i2zO4Q4xIqQAiAaEpVn3PjjCdz+4nrnrBxiI5U1IK3MVrOUbfoKF2iwNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66738},"main":"build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=20.6"},"exports":{".":"./build/index.js","./types":"./build/src/types/main.js","./drivers/*":"./build/src/drivers/*.js","./factories":"./build/factories/main.js"},"gitHead":"25305302e9d58c4bd948f1c67f846b12fcae1001","scripts":{"lint":"eslint .","test":"c8 yarn quick:test","build":"yarn clean && tsup-node","clean":"del-cli build","pretest":"yarn lint","release":"yarn dlx release-it","typecheck":"tsc --noEmit","quick:test":"yarn node --import=@poppinss/ts-exec --enable-source-maps bin/test.ts"},"_npmUser":{"name":"romainlanz","email":"romain.lanz+npm@pm.me"},"prettier":"@adonisjs/prettier-config","release-it":{"git":{"tagName":"v${version}","commitMessage":"chore(release): ${version}","tagAnnotation":"v${version}"},"github":{"web":true,"release":true,"releaseName":"v${version}"}},"_npmVersion":"11.3.0","description":"A framework agnostic encryption library","directories":{},"_nodeVersion":"24.1.0","dependencies":{"@poppinss/utils":"^7.0.0-next.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.11.0","devDependencies":{"c8":"^10.1.3","tsup":"^8.5.0","eslint":"^9.39.1","del-cli":"^7.0.0","prettier":"^3.6.2","@swc/core":"^1.15.1","release-it":"^19.0.6","typescript":"^5.9.3","@types/node":"^22.15.31","@japa/assert":"^4.1.1","@japa/runner":"^4.4.0","@japa/expect-type":"^2.0.3","@poppinss/ts-exec":"^1.4.1","@adonisjs/tsconfig":"^2.0.0-next.3","@adonisjs/eslint-config":"^3.0.0-next.4","@adonisjs/prettier-config":"^1.4.5"},"_npmOperationalInternal":{"tmp":"tmp/encryption_0.1.0_1762897182209_0.90373437961601","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@boringnode/encryption","version":"0.2.0","keywords":["encryption","crypto"],"author":{"name":"Romain Lanz","email":"romain.lanz@pm.me"},"license":"MIT","_id":"@boringnode/encryption@0.2.0","maintainers":[{"name":"julien-r44","email":"julien@ripouteau.com"},{"name":"romainlanz","email":"romain.lanz+npm@pm.me"}],"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"dist":{"shasum":"928c09264b67b59aa7685736fe9cd06f7c19dbfc","tarball":"https://registry.npmjs.org/@boringnode/encryption/-/encryption-0.2.0.tgz","fileCount":31,"integrity":"sha512-iOMmksMPCcim+8EgF9DjaHtTNCZWdlGuFdo9Z5R0O784AXB0NuR0wj959qxuw4F2MKkRxc+ndrvy9ERwHdni5g==","signatures":[{"sig":"MEYCIQC26HhD+AK5YkrPBhvf/snuQDkilcn5Rkbj57duWiettAIhAOza1FZKf8bbxX41oL51sIvbfPaZHGsLShd6BpBW0LQr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66840},"main":"build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=20.6"},"exports":{".":"./build/index.js","./types":"./build/src/types/main.js","./base64":"./build/src/base64.js","./drivers/*":"./build/src/drivers/*.js","./factories":"./build/factories/main.js","./message_verifier":"./build/src/message_verifier.js"},"gitHead":"743762045e1e3cfe2ad75d54f2bbaba8f87a9927","scripts":{"lint":"eslint .","test":"c8 yarn quick:test","build":"yarn clean && tsup-node","clean":"del-cli build","pretest":"yarn lint","release":"yarn dlx release-it","typecheck":"tsc --noEmit","quick:test":"yarn node --import=@poppinss/ts-exec --enable-source-maps bin/test.ts"},"_npmUser":{"name":"romainlanz","email":"romain.lanz+npm@pm.me"},"prettier":"@adonisjs/prettier-config","release-it":{"git":{"tagName":"v${version}","commitMessage":"chore(release): ${version}","tagAnnotation":"v${version}"},"github":{"web":true,"release":true,"releaseName":"v${version}"}},"_npmVersion":"11.6.2","description":"A framework agnostic encryption library","directories":{},"_nodeVersion":"24.11.1","dependencies":{"@poppinss/utils":"^7.0.0-next.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"c8":"^10.1.3","tsup":"^8.5.1","eslint":"^9.39.1","del-cli":"^7.0.0","prettier":"^3.7.4","@swc/core":"^1.15.3","release-it":"^19.1.0","typescript":"^5.9.3","@types/node":"^22.15.31","@japa/assert":"^4.1.1","@japa/runner":"^4.4.0","@japa/expect-type":"^2.0.3","@poppinss/ts-exec":"^1.4.1","@adonisjs/tsconfig":"^2.0.0-next.3","@adonisjs/eslint-config":"^3.0.0-next.5","@adonisjs/prettier-config":"^1.4.5"},"_npmOperationalInternal":{"tmp":"tmp/encryption_0.2.0_1765621774631_0.7872648449692865","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@boringnode/encryption","version":"0.2.1","keywords":["encryption","crypto"],"author":{"name":"Romain Lanz","email":"romain.lanz@pm.me"},"license":"MIT","_id":"@boringnode/encryption@0.2.1","maintainers":[{"name":"julien-r44","email":"julien@ripouteau.com"},{"name":"romainlanz","email":"romain.lanz+npm@pm.me"}],"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"dist":{"shasum":"c363173353c8e37f2f20407e8b66b2b060ea1784","tarball":"https://registry.npmjs.org/@boringnode/encryption/-/encryption-0.2.1.tgz","fileCount":31,"integrity":"sha512-yHn0rxo8fBbmO3/YFnOfrRS9XW+vv4ZC4FfUZahw3DiBWHKQv5K4NEqNRkZJlYJ2Z6hWuS4gVxIOB9rEcz42og==","signatures":[{"sig":"MEYCIQCv9ACbQmsgDh3WjH5VImHxF10j8/zDztPvsPwkpLrkqQIhAOC2HMfAfSdkwpGrU8cysBSQH3uZZ7Q+KgOfTyBSGayr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66840},"main":"build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=20.6"},"exports":{".":"./build/index.js","./types":"./build/src/types/main.js","./base64":"./build/src/base64.js","./drivers/*":"./build/src/drivers/*.js","./factories":"./build/factories/main.js","./message_verifier":"./build/src/message_verifier.js"},"gitHead":"770fe6280e925d1fccc6300e869992f1d8d9cd77","scripts":{"lint":"eslint .","test":"c8 yarn quick:test","build":"yarn clean && tsup-node","clean":"del-cli build","pretest":"yarn lint","release":"yarn dlx release-it","typecheck":"tsc --noEmit","quick:test":"yarn node --import=@poppinss/ts-exec --enable-source-maps bin/test.ts"},"_npmUser":{"name":"romainlanz","email":"romain.lanz+npm@pm.me"},"prettier":"@adonisjs/prettier-config","release-it":{"git":{"tagName":"v${version}","commitMessage":"chore(release): ${version}","tagAnnotation":"v${version}"},"github":{"web":true,"release":true,"releaseName":"v${version}"}},"_npmVersion":"11.6.2","description":"A framework agnostic encryption library","directories":{},"_nodeVersion":"24.11.1","dependencies":{"@poppinss/utils":"^7.0.0-next.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"c8":"^10.1.3","tsup":"^8.5.1","eslint":"^9.39.1","del-cli":"^7.0.0","prettier":"^3.7.4","@swc/core":"^1.15.3","release-it":"^19.1.0","typescript":"^5.9.3","@types/node":"^22.15.31","@japa/assert":"^4.1.1","@japa/runner":"^4.4.0","@japa/expect-type":"^2.0.3","@poppinss/ts-exec":"^1.4.1","@adonisjs/tsconfig":"^2.0.0-next.3","@adonisjs/eslint-config":"^3.0.0-next.5","@adonisjs/prettier-config":"^1.4.5"},"_npmOperationalInternal":{"tmp":"tmp/encryption_0.2.1_1765622356223_0.30161447772637207","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@boringnode/encryption","version":"0.2.2","keywords":["encryption","crypto"],"author":{"name":"Romain Lanz","email":"romain.lanz@pm.me"},"license":"MIT","_id":"@boringnode/encryption@0.2.2","maintainers":[{"name":"julien-r44","email":"julien@ripouteau.com"},{"name":"romainlanz","email":"romain.lanz+npm@pm.me"}],"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"dist":{"shasum":"2448bfe99e91204883d359384c6412a60b2981ae","tarball":"https://registry.npmjs.org/@boringnode/encryption/-/encryption-0.2.2.tgz","fileCount":44,"integrity":"sha512-wZwPVJpDzpT3bmxLmN5oK8jNF+McFYws0M0UI3acHsrOHLvuRAn3BeaVEO+ozhXSXBFofbjQwiBE7BEnuo9NOg==","signatures":[{"sig":"MEQCIDJscq+1+Z+3aQnh3zcNsA+MnPGY9ewJSp0oXwkhAJ6UAiAhaqKKBS7/FEkCif9Hg4xCptgZVvk7CgeJX6AIDFLA7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71734},"main":"build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=20.6"},"exports":{".":"./build/index.js","./types":"./build/src/types/main.js","./base64":"./build/src/base64.js","./drivers/*":"./build/src/drivers/*.js","./factories":"./build/factories/main.js","./message_verifier":"./build/src/message_verifier.js"},"gitHead":"3605dfadc3aa936e0de5acb1f3e49a5197255f66","scripts":{"lint":"eslint .","test":"c8 yarn quick:test","build":"yarn clean && tsup-node","clean":"del-cli build","pretest":"yarn lint","release":"yarn dlx release-it","typecheck":"tsc --noEmit","quick:test":"yarn node --import=@poppinss/ts-exec --enable-source-maps bin/test.ts"},"_npmUser":{"name":"romainlanz","email":"romain.lanz+npm@pm.me"},"prettier":"@adonisjs/prettier-config","release-it":{"git":{"tagName":"v${version}","commitMessage":"chore(release): ${version}","tagAnnotation":"v${version}"},"github":{"web":true,"release":true,"releaseName":"v${version}"}},"_npmVersion":"11.6.2","description":"A framework agnostic encryption library","directories":{},"_nodeVersion":"24.11.1","dependencies":{"@poppinss/utils":"^7.0.0-next.3"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"c8":"^10.1.3","tsup":"^8.5.1","eslint":"^9.39.1","del-cli":"^7.0.0","prettier":"^3.7.4","@swc/core":"^1.15.3","release-it":"^19.1.0","typescript":"^5.9.3","@types/node":"^22.15.31","@japa/assert":"^4.1.1","@japa/runner":"^4.4.0","@japa/expect-type":"^2.0.3","@poppinss/ts-exec":"^1.4.1","@adonisjs/tsconfig":"^2.0.0-next.3","@adonisjs/eslint-config":"^3.0.0-next.5","@adonisjs/prettier-config":"^1.4.5"},"_npmOperationalInternal":{"tmp":"tmp/encryption_0.2.2_1765622837668_0.6263645373412734","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@boringnode/encryption","version":"0.2.3","keywords":["encryption","crypto"],"author":{"name":"Romain Lanz","email":"romain.lanz@pm.me"},"license":"MIT","_id":"@boringnode/encryption@0.2.3","maintainers":[{"name":"julien-r44","email":"julien@ripouteau.com"},{"name":"romainlanz","email":"romain.lanz+npm@pm.me"},{"name":"virk","email":"virk@adonisjs.com"}],"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"dist":{"shasum":"f753769cd93cb52f50f4ec2f443d2e2afe72fd6b","tarball":"https://registry.npmjs.org/@boringnode/encryption/-/encryption-0.2.3.tgz","fileCount":2,"integrity":"sha512-DTdKNz+INXXSJAKELuvzAXW60TIMypxMnvnbyVN5UJY5wC2bmwcPhpcvLgd2F2OXON5kWuLu5nqCb92HibE8Ag==","signatures":[{"sig":"MEQCIFyjyKjZbOGTYeGs1Zdwnd2MHkHWikAhchOUnNERymIDAiAS6oHFP70gIpHqt9sm0ZvkXHYe0Ll5Q3FxzUESaFCrSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3138},"main":"build/index.js","type":"module","engines":{"node":">=20.6"},"exports":{".":"./build/index.js","./types":"./build/src/types/main.js","./base64":"./build/src/base64.js","./drivers/*":"./build/src/drivers/*.js","./factories":"./build/factories/main.js","./message_verifier":"./build/src/message_verifier.js"},"gitHead":"1dd28e37124542b3932507594ff5de6d60a3fa82","scripts":{"lint":"eslint .","test":"c8 yarn quick:test","build":"yarn clean && tsup-node","clean":"del-cli build","pretest":"yarn lint","release":"yarn dlx release-it","typecheck":"tsc --noEmit","quick:test":"yarn node --import=@poppinss/ts-exec --enable-source-maps bin/test.ts"},"_npmUser":{"name":"virk","email":"virk@adonisjs.com"},"prettier":"@adonisjs/prettier-config","release-it":{"git":{"tagName":"v${version}","commitMessage":"chore(release): ${version}","tagAnnotation":"v${version}"},"github":{"web":true,"release":true,"releaseName":"v${version}"}},"_npmVersion":"11.6.2","description":"A framework agnostic encryption library","directories":{},"_nodeVersion":"25.2.1","dependencies":{"@poppinss/utils":"^7.0.0-next.4"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"c8":"^10.1.3","tsup":"^8.5.1","eslint":"^9.39.2","del-cli":"^7.0.0","prettier":"^3.7.4","@swc/core":"^1.15.7","release-it":"^19.1.0","typescript":"^5.9.3","@types/node":"^22.15.31","@japa/assert":"^4.2.0","@japa/runner":"^5.0.0","@japa/expect-type":"^2.0.4","@poppinss/ts-exec":"^1.4.1","@adonisjs/tsconfig":"^2.0.0-next.3","@adonisjs/eslint-config":"^3.0.0-next.5","@adonisjs/prettier-config":"^1.4.5"},"_npmOperationalInternal":{"tmp":"tmp/encryption_0.2.3_1767766173534_0.778097334355339","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@boringnode/encryption","version":"0.2.4","keywords":["encryption","crypto"],"author":{"name":"Romain Lanz","email":"romain.lanz@pm.me"},"license":"MIT","_id":"@boringnode/encryption@0.2.4","maintainers":[{"name":"julien-r44","email":"julien@ripouteau.com"},{"name":"romainlanz","email":"romain.lanz+npm@pm.me"},{"name":"virk","email":"virk@adonisjs.com"}],"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"dist":{"shasum":"4d8c321b3c7a24194325878bd233402ac44a14a8","tarball":"https://registry.npmjs.org/@boringnode/encryption/-/encryption-0.2.4.tgz","fileCount":44,"integrity":"sha512-wriFgWCopd7f1RM2Y/ROGmM4/j/kUPjEjQh1Bu6wiVKDnyvZzxRaXMeBNKhI47KaUSlZlslbmuaBCV6b3VJGqw==","signatures":[{"sig":"MEQCIBxm9HaQPbLiY4Kh/5DrcPURypBfdXh45DuPvVRKTcF9AiBd8mJvZx/31XtZmthKUyBC5xaHSwIYUWeKrcazEaaWng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72656},"main":"build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=20.6"},"exports":{".":"./build/index.js","./types":"./build/src/types/main.js","./base64":"./build/src/base64.js","./drivers/*":"./build/src/drivers/*.js","./factories":"./build/factories/main.js","./message_verifier":"./build/src/message_verifier.js"},"gitHead":"9af4138dc08afbaebe49cdd8270d693caee8a1d6","scripts":{"lint":"eslint .","test":"c8 yarn quick:test","build":"yarn clean && tsup-node","clean":"del-cli build","pretest":"yarn lint","release":"yarn dlx release-it","typecheck":"tsc --noEmit","quick:test":"yarn node --import=@poppinss/ts-exec --enable-source-maps bin/test.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"virk","email":"virk@adonisjs.com"},"prettier":"@adonisjs/prettier-config","release-it":{"git":{"tagName":"v${version}","commitMessage":"chore(release): ${version}","tagAnnotation":"v${version}"},"github":{"web":true,"release":true,"releaseName":"v${version}"}},"_npmVersion":"11.6.2","description":"A framework agnostic encryption library","directories":{},"_nodeVersion":"25.2.1","dependencies":{"@poppinss/utils":"^7.0.0-next.4"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"c8":"^10.1.3","tsup":"^8.5.1","eslint":"^9.39.2","del-cli":"^7.0.0","prettier":"^3.7.4","@swc/core":"^1.15.7","release-it":"^19.1.0","typescript":"^5.9.3","@types/node":"^22.15.31","@japa/assert":"^4.2.0","@japa/runner":"^5.0.0","@japa/expect-type":"^2.0.4","@poppinss/ts-exec":"^1.4.1","@adonisjs/tsconfig":"^2.0.0-next.3","@adonisjs/eslint-config":"^3.0.0-next.5","@adonisjs/prettier-config":"^1.4.5"},"_npmOperationalInternal":{"tmp":"tmp/encryption_0.2.4_1767766873897_0.9549816293283864","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@boringnode/encryption","version":"0.2.5","keywords":["encryption","crypto"],"author":{"name":"Romain Lanz","email":"romain.lanz@pm.me"},"license":"MIT","_id":"@boringnode/encryption@0.2.5","maintainers":[{"name":"julien-r44","email":"julien@ripouteau.com"},{"name":"romainlanz","email":"romain.lanz+npm@pm.me"},{"name":"virk","email":"virk@adonisjs.com"}],"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"dist":{"shasum":"0f115667bc0a6d9b63072240e47fa5324b6ce272","tarball":"https://registry.npmjs.org/@boringnode/encryption/-/encryption-0.2.5.tgz","fileCount":45,"integrity":"sha512-jSgartYKkDCX6xb+tmSA9eYkKXIGzwLgTyTT4oIpbvCaGDxsgfnQYvoMZ48gby7oWBWpf+WombTjR80E0kOAxQ==","signatures":[{"sig":"MEYCIQDH7EHIzuywAgl2VtVH8jTUkkr6TnIGWt0he+1NMfknCAIhAPDrEmHfXW3mnvaOSw1itw4e0gBBxt6WnXgeIzuU9VqD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84475},"main":"build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=20.6"},"exports":{".":"./build/index.js","./types":"./build/src/types/main.js","./base64":"./build/src/base64.js","./drivers/*":"./build/src/drivers/*.js","./factories":"./build/factories/main.js","./message_verifier":"./build/src/message_verifier.js"},"gitHead":"1bdf80f20ecc4a26bd86834809cfdc9c0e4dd2cc","scripts":{"lint":"eslint .","test":"c8 yarn quick:test","build":"yarn clean && tsup-node","clean":"del-cli build","pretest":"yarn lint","release":"yarn dlx release-it","typecheck":"tsc --noEmit","quick:test":"yarn node --import=@poppinss/ts-exec --enable-source-maps bin/test.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"romainlanz","email":"romain.lanz+npm@pm.me"},"prettier":"@adonisjs/prettier-config","release-it":{"git":{"tagName":"v${version}","commitMessage":"chore(release): ${version}","tagAnnotation":"v${version}"},"github":{"web":true,"release":true,"releaseName":"v${version}"}},"_npmVersion":"11.6.2","description":"A framework agnostic encryption library","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@poppinss/utils":"^7.0.0-next.6"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"c8":"^10.1.3","tsup":"^8.5.1","eslint":"^9.39.2","del-cli":"^7.0.0","prettier":"^3.8.0","@swc/core":"^1.15.8","release-it":"^19.2.3","typescript":"^5.9.3","@types/node":"^22.15.31","@japa/assert":"^4.2.0","@japa/runner":"^5.3.0","@japa/expect-type":"^2.0.4","@poppinss/ts-exec":"^1.4.1","@adonisjs/tsconfig":"^2.0.0-next.3","@adonisjs/eslint-config":"^3.0.0-next.9","@adonisjs/prettier-config":"^1.4.5"},"_npmOperationalInternal":{"tmp":"tmp/encryption_0.2.5_1768659634799_0.34234444796542385","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@boringnode/encryption","version":"1.0.0","keywords":["encryption","crypto"],"author":{"name":"Romain Lanz","email":"romain.lanz@pm.me"},"license":"MIT","_id":"@boringnode/encryption@1.0.0","maintainers":[{"name":"julien-r44","email":"julien@ripouteau.com"},{"name":"romainlanz","email":"romain.lanz+npm@pm.me"},{"name":"virk","email":"virk@adonisjs.com"}],"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"dist":{"shasum":"41ff83287579c083acd38ee382dda3b3ce9271bb","tarball":"https://registry.npmjs.org/@boringnode/encryption/-/encryption-1.0.0.tgz","fileCount":48,"integrity":"sha512-wGGOE7ywA4W6KAVoVC7s1P4ULzFLIQA/JvthGAa41EA0CaH7kGGawkBB5t5tvWopgBNMhOpIg3uxvULxqf2rQw==","signatures":[{"sig":"MEQCIFQBZk4rtwEx9MlOtwnksCVwc42u1uQaKH5cmPGHu4u0AiBbEUd3jKtHoEKvBXWyVJZH64ulD6XPUJ1nto327zMbXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120072},"main":"build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=20.6"},"exports":{".":"./build/index.js","./types":"./build/src/types/main.js","./base64":"./build/src/base64.js","./drivers/*":"./build/src/drivers/*.js","./factories":"./build/factories/main.js","./message_verifier":"./build/src/message_verifier.js"},"gitHead":"e131602d7fb4a75fb6e1583ea7282b2309dcdc95","scripts":{"lint":"eslint .","test":"yarn quick:test","build":"yarn clean && tsup-node","clean":"del-cli build","pretest":"yarn lint","release":"yarn dlx release-it","typecheck":"tsc --noEmit","quick:test":"yarn node --import=@poppinss/ts-exec --enable-source-maps bin/test.ts --reporters=dot","test:coverage":"c8 yarn quick:test","prepublishOnly":"npm run build"},"_npmUser":{"name":"romainlanz","email":"romain.lanz+npm@pm.me"},"prettier":"@adonisjs/prettier-config","release-it":{"git":{"tagName":"v${version}","commitMessage":"chore(release): ${version}","tagAnnotation":"v${version}"},"github":{"web":true,"release":true,"releaseName":"v${version}"}},"_npmVersion":"11.6.2","description":"A framework agnostic encryption library","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@poppinss/utils":"^7.0.0-next.7"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@4.12.0","devDependencies":{"c8":"^10.1.3","tsup":"^8.5.1","eslint":"^9.39.2","del-cli":"^7.0.0","prettier":"^3.8.1","@swc/core":"^1.15.11","release-it":"^19.2.4","typescript":"^5.9.3","@types/node":"^22.19.9","@japa/assert":"^4.2.0","@japa/runner":"^5.3.0","@japa/expect-type":"^2.0.4","@poppinss/ts-exec":"^1.4.3","@adonisjs/tsconfig":"^2.0.0-next.3","@adonisjs/eslint-config":"^3.0.0-next.9","@adonisjs/prettier-config":"^1.4.5"},"_npmOperationalInternal":{"tmp":"tmp/encryption_1.0.0_1770414788900_0.6062493306949073","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@boringnode/encryption","description":"A framework agnostic encryption library","version":"1.0.1","engines":{"node":">=20.6"},"main":"build/index.js","type":"module","exports":{".":"./build/index.js","./drivers/*":"./build/src/drivers/*.js","./factories":"./build/factories/main.js","./message_verifier":"./build/src/message_verifier.js","./base64":"./build/src/base64.js","./types":"./build/src/types/main.js"},"scripts":{"build":"yarn clean && tsup-node","clean":"del-cli build","lint":"eslint .","pretest":"yarn lint","prepublishOnly":"npm run build","release":"yarn dlx release-it","quick:test":"yarn node --import=@poppinss/ts-exec --enable-source-maps bin/test.ts --reporters=dot","test":"yarn quick:test","test:coverage":"c8 yarn quick:test","typecheck":"tsc --noEmit"},"dependencies":{"@poppinss/utils":"^7.0.1"},"devDependencies":{"@adonisjs/eslint-config":"^3.1.0","@adonisjs/prettier-config":"^1.5.0","@adonisjs/tsconfig":"^2.0.0","@japa/assert":"^4.2.0","@japa/expect-type":"^2.0.4","@japa/runner":"^5.3.0","@poppinss/ts-exec":"^1.4.4","@swc/core":"^1.15.43","@types/node":"^22.19.9","c8":"^11.0.0","del-cli":"^7.0.0","eslint":"^10.6.0","prettier":"^3.9.1","release-it":"^20.2.1","tsup":"^8.5.1","typescript":"^5.9.3"},"author":{"name":"Romain Lanz","email":"romain.lanz@pm.me"},"contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"license":"MIT","keywords":["encryption","crypto"],"prettier":"@adonisjs/prettier-config","publishConfig":{"access":"public","tag":"latest"},"release-it":{"git":{"commitMessage":"chore(release): ${version}","tagAnnotation":"v${version}","tagName":"v${version}"},"github":{"release":true,"releaseName":"v${version}","web":true}},"packageManager":"yarn@4.17.0","gitHead":"d8b90eaffff2dce1dcdeb85b96dcb5466a942f2d","types":"./build/index.d.ts","_id":"@boringnode/encryption@1.0.1","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-+UL9erFUngnxNEDdXSKCnGQA8D62C/x2vxLF5vc9zaX7T2JolV/bGjpZAvFLzlY2gIffHyw+KsqsEWod5+zV0w==","shasum":"2e51d5ffd686c041cafadbe24c525c7a4527747c","tarball":"https://registry.npmjs.org/@boringnode/encryption/-/encryption-1.0.1.tgz","fileCount":50,"unpackedSize":130333,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD/rGAG7Wm60m6t+HZybKZMAvnggJzUtE3Mgnh3v4Kk9gIhAIcu+S1TdeQJLrEsdIzW6YmVoI0rknF38Ro5AHBmiHid"}]},"_npmUser":{"name":"romainlanz","email":"romain.lanz@pm.me"},"directories":{},"maintainers":[{"name":"julien-r44","email":"julien@ripouteau.com"},{"name":"romainlanz","email":"romain.lanz@pm.me"},{"name":"virk","email":"virk@adonisjs.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/encryption_1.0.1_1783666940069_0.9639304903543549"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-13T18:56:19.638Z","modified":"2026-07-10T07:02:20.386Z","0.0.1":"2025-06-13T18:56:19.876Z","0.0.2":"2025-06-13T19:01:55.341Z","0.1.0":"2025-11-11T21:39:42.446Z","0.2.0":"2025-12-13T10:29:34.795Z","0.2.1":"2025-12-13T10:39:16.382Z","0.2.2":"2025-12-13T10:47:17.819Z","0.2.3":"2026-01-07T06:09:33.674Z","0.2.4":"2026-01-07T06:21:14.041Z","0.2.5":"2026-01-17T14:20:34.972Z","1.0.0":"2026-02-06T21:53:09.067Z","1.0.1":"2026-07-10T07:02:20.258Z"},"author":{"name":"Romain Lanz","email":"romain.lanz@pm.me"},"license":"MIT","keywords":["encryption","crypto"],"description":"A framework agnostic encryption library","contributors":[{"name":"Harminder Virk","email":"virk@adonisjs.com"}],"maintainers":[{"name":"julien-r44","email":"julien@ripouteau.com"},{"name":"romainlanz","email":"romain.lanz@pm.me"},{"name":"virk","email":"virk@adonisjs.com"}],"readme":"# @boringnode/encryption\n\n<div align=\"center\">\n\n[![typescript-image]][typescript-url]\n[![gh-workflow-image]][gh-workflow-url]\n[![npm-image]][npm-url]\n[![npm-download-image]][npm-download-url]\n[![license-image]][license-url]\n\n</div>\n\nA framework-agnostic encryption library for Node.js. Built with simplicity and security in mind, `@boringnode/encryption` provides a unified API for encrypting and signing data with support for multiple encryption algorithms and key rotation.\n\n## Installation\n\n```bash\nnpm install @boringnode/encryption\n```\n\n## Features\n\n- **Multiple Algorithms**: ChaCha20-Poly1305, AES-256-GCM, AES-256-CBC, AES-SIV\n- **Key Rotation**: Encrypt with new keys, decrypt with old ones\n- **Deterministic Encryption**: AES-SIV driver for equality queries\n- **Purpose-Bound Encryption**: Ensure encrypted values are used for their intended purpose\n- **Expiration Support**: Set time-to-live on encrypted values\n- **Blind Indexes**: Deterministic indexes for equality queries\n- **Message Verification**: Sign data without encrypting (HMAC-based)\n- **Type-Safe**: Full TypeScript support with typed payloads\n\n## Quick Start\n\n### 1. Configure Encryption\n\n```typescript\nimport { Encryption } from '@boringnode/encryption'\nimport { chacha20poly1305 } from '@boringnode/encryption/drivers/chacha20_poly1305'\n\nconst encryption = new Encryption(\n  chacha20poly1305({\n    id: 'app',\n    keys: [process.env.APP_KEY],\n  })\n)\n```\n\n`id` must be a non-empty string and cannot contain `.`.\n\n### 2. Encrypt & Decrypt\n\n```typescript\n// Encrypt any value\nconst encrypted = encryption.encrypt({ userId: 1, role: 'admin' })\n// => \"app.base64EncodedCipherText.base64EncodedIv.base64EncodedTag\"\n\n// Decrypt the value\nconst decrypted = encryption.decrypt(encrypted)\n// => { userId: 1, role: 'admin' }\n```\n\n## Supported Data Types\n\nThe library supports encrypting a wide range of data types:\n\n- Strings\n- Numbers\n- Booleans\n- Arrays\n- Objects\n- Dates\n\n## Encryption Drivers\n\n### ChaCha20-Poly1305 (recommended)\n\nModern, fast, and secure. Recommended for most use cases.\n\n```typescript\nimport { chacha20poly1305 } from '@boringnode/encryption/drivers/chacha20_poly1305'\n\nconst config = chacha20poly1305({\n  id: 'app',\n  keys: ['your-32-character-secret-key-here'],\n})\n```\n\n### AES-256-GCM\n\nIndustry-standard authenticated encryption.\n\n```typescript\nimport { aes256gcm } from '@boringnode/encryption/drivers/aes_256_gcm'\n\nconst config = aes256gcm({\n  id: 'app',\n  keys: ['your-32-character-secret-key-here'],\n})\n```\n\n### AES-256-CBC\n\nLegacy support with HMAC authentication.\n\n```typescript\nimport { aes256cbc } from '@boringnode/encryption/drivers/aes_256_cbc'\n\nconst config = aes256cbc({\n  id: 'app',\n  keys: ['your-32-character-secret-key-here'],\n})\n```\n\n### AES-SIV (deterministic)\n\nDeterministic encryption for direct equality lookups on encrypted columns.\n\n```typescript\nimport { aessiv } from '@boringnode/encryption/drivers/aes_siv'\n\nconst config = aessiv({\n  id: 'app',\n  key: 'your-32-character-secret-key-here',\n})\n```\n\nNotes:\n\n- `expiresIn` is not supported with deterministic encryption.\n- Key rotation is not automatic for deterministic ciphertexts. Use an explicit migration/backfill strategy.\n\n## Key Rotation\n\nThe library supports multiple keys for seamless key rotation. The first key is used for encryption, while all keys are tried during decryption.\n\n```typescript\nconst encryption = new Encryption(\n  chacha20poly1305({\n    id: 'app',\n    keys: [\n      process.env.NEW_APP_KEY, // Used for encryption\n      process.env.OLD_APP_KEY, // Still valid for decryption\n    ],\n  })\n)\n\n// New encryptions use NEW_APP_KEY\nconst encrypted = encryption.encrypt('secret')\n\n// Decryption works with both keys\nencryption.decrypt(encryptedWithOldKey) // Works\nencryption.decrypt(encryptedWithNewKey) // Works\n```\n\n## Purpose-Bound Encryption\n\nEnsure encrypted values are only used for their intended purpose:\n\n```typescript\n// Encrypt with a purpose\nconst token = encryption.encrypt({ userId: 1 }, undefined, 'password-reset')\n\n// Must provide same purpose to decrypt\nencryption.decrypt(token, 'password-reset') // => { userId: 1 }\nencryption.decrypt(token, 'email-verify')   // => null\nencryption.decrypt(token)                    // => null\n```\n\n## Expiration Support\n\nSet a time-to-live on encrypted values:\n\n```typescript\n// Expires in 1 hour\nconst token = encryption.encrypt({ userId: 1 }, '1h')\n\n// Expires in 30 minutes\nconst token = encryption.encrypt({ userId: 1 }, '30m')\n\n// Expires in 7 days\nconst token = encryption.encrypt({ userId: 1 }, '7d')\n\n// After expiration, decrypt returns null\nencryption.decrypt(expiredToken) // => null\n```\n\n## Blind Indexes\n\nBlind indexes are deterministic hashes used for equality queries:\n\n```typescript\nconst index = encryption.blindIndex('foo@example.com', 'users.email')\n```\n\nWhen rotating keys, query using all blind indexes:\n\n```typescript\nconst indexes = encryption.blindIndexes('foo@example.com', 'users.email')\n// Use SQL: WHERE email_index IN (...)\n```\n\nRules:\n\n- `purpose` is required and should identify the field/context (`users.email`, `users.ssn`, ...).\n- Matching is exact-bytes (no implicit normalization).\n- Prefer normalized primitive values for blind indexes (`string`/`number`/`boolean`/ISO date).\n- For structured objects, normalize/canonicalize before indexing (for example, map object -> stable string yourself).\n\n```typescript\nconst emailIndex = encryption.blindIndex(email.trim().toLowerCase(), 'users.email')\n```\n\n## Message Verifier\n\nWhen you need to ensure data integrity without hiding the content, use the `MessageVerifier`. The payload is base64-encoded (not encrypted) and signed with HMAC.\n\n```typescript\nimport { MessageVerifier } from '@boringnode/encryption/message_verifier'\n\nconst verifier = new MessageVerifier(['your-32-character-secret-key-here'])\n\n// Sign a value\nconst signed = verifier.sign({ userId: 1 })\n\n// Verify and retrieve the value\nconst payload = verifier.unsign(signed)\n// => { userId: 1 }\n\n// Tampered values return null\nverifier.unsign('tampered.value') // => null\n```\n\nThe verifier also supports purpose and expiration:\n\n```typescript\n// With expiration\nconst signed = verifier.sign({ userId: 1 }, '1h')\n\n// With purpose\nconst signed = verifier.sign({ userId: 1 }, undefined, 'api-token')\nconst payload = verifier.unsign(signed, 'api-token')\n```\n\n## Base64 Utilities\n\nURL-safe base64 encoding/decoding utilities are available:\n\n```typescript\nimport { base64UrlEncode, base64UrlDecode } from '@boringnode/encryption/base64'\n\nconst encoded = base64UrlEncode('Hello World')\nconst decoded = base64UrlDecode(encoded, 'utf8')\n```\n\n## HMAC\n\nGenerate and verify HMAC signatures:\n\n```typescript\nimport { Hmac } from '@boringnode/encryption'\n\nconst hmac = new Hmac(secretKey)\n\n// Generate HMAC\nconst hash = hmac.generate('data to sign')\n\n// Verify HMAC (timing-safe comparison)\nconst isValid = hmac.compare('data to sign', hash)\n```\n\n## Error Handling\n\nThe library is designed to return `null` on decryption failures rather than throwing exceptions. This prevents timing attacks and simplifies error handling:\n\n```typescript\nconst result = encryption.decrypt(maybeInvalidValue)\n\nif (result === null) {\n  // Invalid, expired, wrong purpose, or tampered\n}\n```\n\n[gh-workflow-image]: https://img.shields.io/github/actions/workflow/status/boringnode/encryption/checks.yml?branch=1.x&style=for-the-badge\n[gh-workflow-url]: https://github.com/boringnode/encryption/actions/workflows/checks.yml\n[npm-image]: https://img.shields.io/npm/v/@boringnode/encryption.svg?style=for-the-badge&logo=npm\n[npm-url]: https://www.npmjs.com/package/@boringnode/encryption\n[npm-download-image]: https://img.shields.io/npm/dm/@boringnode/encryption?style=for-the-badge\n[npm-download-url]: https://www.npmjs.com/package/@boringnode/encryption\n[typescript-image]: https://img.shields.io/badge/Typescript-294E80.svg?style=for-the-badge&logo=typescript\n[typescript-url]: https://www.typescriptlang.org\n[license-image]: https://img.shields.io/npm/l/@boringnode/encryption?color=blueviolet&style=for-the-badge\n[license-url]: LICENSE.md\n","readmeFilename":"README.md"}