{"_id":"@alessiofrittoli/crypto-signature","_rev":"14-e925ceea6a14d00b2fe40d7d6f450a13","name":"@alessiofrittoli/crypto-signature","dist-tags":{"latest":"2.5.1"},"versions":{"1.0.0":{"name":"@alessiofrittoli/crypto-signature","version":"1.0.0","keywords":["nodejs","signatures","digital-signatures"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/crypto-signature@1.0.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/crypto-signature#readme","bugs":{"url":"https://github.com/alessiofrittoli/crypto-signature/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"552650b00a8fd7b687e552934eb8cdca1d477c59","tarball":"https://registry.npmjs.org/@alessiofrittoli/crypto-signature/-/crypto-signature-1.0.0.tgz","fileCount":11,"integrity":"sha512-fC62owrTCY08K0i1q8UduHP9MoUtWwaKXHEGN7+1wMaSezaHp0slW7sVdn7BliBZxFZnQryHaRuhGDGb3hvpVQ==","signatures":[{"sig":"MEYCIQDXNoHvoFRDUCQlQmk4PLTQgOeGKXvD/kDD6W1mvm0TXwIhALsyb4ORCe6xG1MubzqMXezMCks0ZzgmFNM8fEK48/A1","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20675},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.js"}},"gitHead":"89f714f3fea334739aed7700625c3999a9fe8782","scripts":{"lint":"eslint","test":"jest --watchAll --verbose","build":"eslint && pnpm test:ci && tsup","test:ci":"jest --ci --verbose","test:jest":"pnpm test jest.test.ts","test:jsdom":"JSDOM=true pnpm test","test:verify":"pnpm test verify.test.ts","test:ci:jsdom":"JSDOM=true pnpm test:ci","test:signature":"pnpm test signature.test.ts"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/crypto-signature.git","type":"git"},"_npmVersion":"10.9.0","description":"Lightweight TypeScript Signatures library","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"@alessiofrittoli/crypto-key":"^1.0.0","@alessiofrittoli/crypto-algorithm":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.3.5","dotenv":"^16.4.7","eslint":"^9.17.0","globals":"^15.13.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/jest":"^29.5.14","@types/node":"^22.10.2","@jest/globals":"^29.7.0","typescript-eslint":"^8.18.0","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/crypto-signature_1.0.0_1734190497832_0.5702517621227232","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@alessiofrittoli/crypto-signature","version":"1.0.1","keywords":["nodejs","signatures","digital-signatures"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/crypto-signature@1.0.1","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/crypto-signature#readme","bugs":{"url":"https://github.com/alessiofrittoli/crypto-signature/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"167986e768a6a1853c8ab1f8b2af95cdf55e2917","tarball":"https://registry.npmjs.org/@alessiofrittoli/crypto-signature/-/crypto-signature-1.0.1.tgz","fileCount":11,"integrity":"sha512-5dIcY6E5mgEGvY6GnKADI/ZeWWLYh9ltlZXQ6HYj0RoSW3PUwBMuGxJ84ElYiNAlo5VnpaqPwW6CK8LbObQagg==","signatures":[{"sig":"MEYCIQDPqmxgUEqAKDF8KouWejCXxavPtY9cG57lPMHBDRpRmgIhAPQMhO+Zon2MrSwsSABk8dnrhlK0E1Dt5+p/lKcjSEot","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20555},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.js"}},"gitHead":"b48c20140a3300bc92fb1387bc87aa90e7446db7","scripts":{"lint":"eslint","test":"jest --watchAll --verbose","build":"eslint && pnpm test:ci && tsup","test:ci":"jest --ci --verbose","test:jest":"pnpm test jest.test.ts","test:jsdom":"JSDOM=true pnpm test","test:verify":"pnpm test verify.test.ts","test:ci:jsdom":"JSDOM=true pnpm test:ci","test:signature":"pnpm test signature.test.ts"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/crypto-signature.git","type":"git"},"_npmVersion":"10.9.0","description":"Lightweight TypeScript Signatures library","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"@alessiofrittoli/crypto-key":"^1.0.0","@alessiofrittoli/crypto-algorithm":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.3.5","dotenv":"^16.4.7","eslint":"^9.17.0","globals":"^15.13.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/jest":"^29.5.14","@types/node":"^22.10.2","@jest/globals":"^29.7.0","typescript-eslint":"^8.18.0","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/crypto-signature_1.0.1_1734191126629_0.25034550170562575","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@alessiofrittoli/crypto-signature","version":"1.1.0","keywords":["nodejs","signatures","digital-signatures"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/crypto-signature@1.1.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/crypto-signature#readme","bugs":{"url":"https://github.com/alessiofrittoli/crypto-signature/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"0b7959a9dd13ef1c504ad6d947cee7ac0d77efb4","tarball":"https://registry.npmjs.org/@alessiofrittoli/crypto-signature/-/crypto-signature-1.1.0.tgz","fileCount":11,"integrity":"sha512-e9mZGFDE4O/HX55O9P9ev32ttk35ix2L4agPhWI5oxg7XkkbZuOeJ4JPm8NShyPx7NvbCRaSTNf7C63lXLWepQ==","signatures":[{"sig":"MEQCIAxAkfxNQlgPi81ZU5mtQmND3GjB2jLaWwXorkd2kAtaAiBfHar7c2mJbEc5Anog4wjeTkM9+k7S/+pcedFzc0a4Mw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20985},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.js"}},"gitHead":"23ca821b693c50c7b95aab31b94421f3300176a6","scripts":{"lint":"eslint","test":"jest --watchAll --verbose","build":"eslint && pnpm test:ci && tsup","test:ci":"jest --ci --verbose","test:jest":"pnpm test jest.test.ts","test:jsdom":"JSDOM=true pnpm test","test:verify":"pnpm test verify.test.ts","test:ci:jsdom":"JSDOM=true pnpm test:ci","test:signature":"pnpm test signature.test.ts"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/crypto-signature.git","type":"git"},"_npmVersion":"10.9.0","description":"Lightweight TypeScript Signatures library","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"@alessiofrittoli/crypto-key":"^1.0.0","@alessiofrittoli/crypto-buffer":"^2.0.1","@alessiofrittoli/crypto-algorithm":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.3.5","dotenv":"^16.4.7","eslint":"^9.17.0","globals":"^15.13.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/jest":"^29.5.14","@types/node":"^22.10.2","@jest/globals":"^29.7.0","typescript-eslint":"^8.18.0","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/crypto-signature_1.1.0_1734202728103_0.6093096423435165","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@alessiofrittoli/crypto-signature","version":"1.2.0","keywords":["nodejs","signatures","digital-signatures"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/crypto-signature@1.2.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/crypto-signature#readme","bugs":{"url":"https://github.com/alessiofrittoli/crypto-signature/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"720fc449534ffbb67435e207331fdca89413587c","tarball":"https://registry.npmjs.org/@alessiofrittoli/crypto-signature/-/crypto-signature-1.2.0.tgz","fileCount":15,"integrity":"sha512-rWIT+gSWoPjcosRBJQYhYokgJP7n+3ektDUMOa0Vzwr71E5p+pUJX272nTR+Tq5ZE4cz2qUEc8ZxXHrJAAjdvQ==","signatures":[{"sig":"MEYCIQDR8IeXaoT8lgYG82ywHnFj0IdpRryHlkkOOtfNrGbn3AIhAL0SVOsYQbedo+kI0qBlG3V4jv9Js4aClzVBRVTH/uCq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25119},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"},"./error":{"types":"./dist/error.d.ts","import":"./dist/error.mjs","require":"./dist/error.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.js"}},"gitHead":"0ace3f89d1dd3ec907a26508220821a59206ffa8","scripts":{"lint":"eslint","test":"jest --watchAll --verbose","build":"eslint && pnpm test:ci && tsup","test:ci":"jest --ci --verbose","test:jest":"pnpm test jest.test.ts","test:jsdom":"JSDOM=true pnpm test","test:verify":"pnpm test verify.test.ts","test:ci:jsdom":"JSDOM=true pnpm test:ci","test:exception":"pnpm test exception.test.ts","test:signature":"pnpm test signature.test.ts"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/crypto-signature.git","type":"git"},"_npmVersion":"10.9.0","description":"Lightweight TypeScript Signatures library","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"@alessiofrittoli/exception":"^1.0.0","@alessiofrittoli/crypto-key":"^1.0.0","@alessiofrittoli/crypto-buffer":"^2.0.1","@alessiofrittoli/crypto-algorithm":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.3.5","dotenv":"^16.4.7","eslint":"^9.17.0","globals":"^15.13.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/jest":"^29.5.14","@types/node":"^22.10.2","@jest/globals":"^29.7.0","typescript-eslint":"^8.18.0","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/crypto-signature_1.2.0_1734448749333_0.5878516941498428","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@alessiofrittoli/crypto-signature","version":"1.2.1","keywords":["nodejs","signatures","digital-signatures"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/crypto-signature@1.2.1","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/crypto-signature#readme","bugs":{"url":"https://github.com/alessiofrittoli/crypto-signature/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"1995a9409e804a98c69576bfbc540f3b94c06c8f","tarball":"https://registry.npmjs.org/@alessiofrittoli/crypto-signature/-/crypto-signature-1.2.1.tgz","fileCount":15,"integrity":"sha512-sMy8UYXurpczs3ZgK34bpCTsD36Z4sjNqImGcC+2epKRFZ1POIds0MGEQ6N6jDEmBz129hgqZ6l9HT/cbvDUgA==","signatures":[{"sig":"MEQCIE/4mZIOgh7dd/PK1w76P89j7u9d5HTDXIqFB7Sz4dAzAiAbxdPLOsSpk2RuwEu+w3hh6tonJ677J/5Ke0tItFYPIA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25174},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"},"./error":{"types":"./dist/error.d.ts","import":"./dist/error.mjs","require":"./dist/error.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.js"}},"gitHead":"418eb4bb3235de1c616894e4aba7ec10755c484d","scripts":{"lint":"eslint","test":"jest --watchAll --verbose","build":"eslint && pnpm test:ci && tsup","test:ci":"jest --ci --verbose","test:jest":"pnpm test jest.test.ts","test:jsdom":"JSDOM=true pnpm test","test:verify":"pnpm test verify.test.ts","test:ci:jsdom":"JSDOM=true pnpm test:ci","test:exception":"pnpm test exception.test.ts","test:signature":"pnpm test signature.test.ts"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/crypto-signature.git","type":"git"},"_npmVersion":"10.9.0","description":"Lightweight TypeScript Signatures library","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"@alessiofrittoli/exception":"^1.0.0","@alessiofrittoli/crypto-key":"^1.0.0","@alessiofrittoli/crypto-buffer":"^2.0.1","@alessiofrittoli/crypto-algorithm":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.3.5","dotenv":"^16.4.7","eslint":"^9.17.0","globals":"^15.13.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/jest":"^29.5.14","@types/node":"^22.10.2","@jest/globals":"^29.7.0","typescript-eslint":"^8.18.0","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/crypto-signature_1.2.1_1734450178114_0.047026773428687996","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@alessiofrittoli/crypto-signature","version":"1.3.0","keywords":["nodejs","signatures","digital-signatures"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/crypto-signature@1.3.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/crypto-signature#readme","bugs":{"url":"https://github.com/alessiofrittoli/crypto-signature/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"e87b8ba094574da5cd33097b0140273842565033","tarball":"https://registry.npmjs.org/@alessiofrittoli/crypto-signature/-/crypto-signature-1.3.0.tgz","fileCount":15,"integrity":"sha512-GwQfVVXct27OYth43bmUWoG2bZNRUxRIeE2MhMiJ9Rj7yzk7VbDtK4/l2hXMAupmuZcDlMxpeh9//Aq8psNA0Q==","signatures":[{"sig":"MEQCIGGBt9BSPBFrW1fe2dED9eyLeC/Y73W3HT/8FpYMIkvFAiALLYF7+mXiuL0U45UywsSUDq/UKcs9HC4+j0xX6iPSlg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26965},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"},"./error":{"types":"./dist/error.d.ts","import":"./dist/error.mjs","require":"./dist/error.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.js"}},"gitHead":"ada244504da6d1b0e434200f4a7d36befe4edba3","scripts":{"lint":"eslint","test":"jest --watchAll --verbose","build":"pnpm lint && pnpm test:ci && tsup","test:ci":"jest --ci --verbose","test:jest":"pnpm test jest.test.ts","test:jsdom":"JSDOM=true pnpm test","test:verify":"pnpm test verify.test.ts","test:ci:jsdom":"JSDOM=true pnpm test:ci","test:coverage":"concurrently --prefix none --kill-others \"pnpm jest --watchAll --verbose --coverage\" \"pnpm test:serve-coverage\"","test:exception":"pnpm test exception.test.ts","test:signature":"pnpm test signature.test.ts","test:coverage:jsdom":"JSDOM=true pnpm test:coverage","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/crypto-signature.git","type":"git"},"_npmVersion":"10.9.0","description":"Lightweight TypeScript Signatures library","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"@alessiofrittoli/exception":"^1.2.0","@alessiofrittoli/crypto-key":"^1.0.0","@alessiofrittoli/type-utils":"^1.2.0","@alessiofrittoli/crypto-buffer":"^2.0.1","@alessiofrittoli/crypto-algorithm":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.3.5","dotenv":"^16.4.7","eslint":"^9.17.0","globals":"^15.14.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/jest":"^29.5.14","@types/node":"^22.10.2","http-server":"^14.1.1","concurrently":"^9.1.0","@jest/globals":"^29.7.0","typescript-eslint":"^8.18.1","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/crypto-signature_1.3.0_1734793570747_0.41317351005272474","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@alessiofrittoli/crypto-signature","version":"1.3.1","keywords":["nodejs","signatures","digital-signatures"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/crypto-signature@1.3.1","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/crypto-signature#readme","bugs":{"url":"https://github.com/alessiofrittoli/crypto-signature/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"47f7a6707625ca3e3129d43198ecc4c449053759","tarball":"https://registry.npmjs.org/@alessiofrittoli/crypto-signature/-/crypto-signature-1.3.1.tgz","fileCount":15,"integrity":"sha512-17nmvvDZoQef7AceRmnskuoRh6MFO2fwJQF25av41/hSEYMGvIIdbInwfnboTkFXmfj51k/jNo5+kAHFT8eeYw==","signatures":[{"sig":"MEYCIQCP3Di5//HslLv/FsStq6mSfXvtOAW8MLFqHTlnQYBncAIhAKjqH1IcxzosMaQfj3FD4YRcXbYhUvwjvnJnimKTRq70","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27080},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"},"./error":{"types":"./dist/error.d.ts","import":"./dist/error.mjs","require":"./dist/error.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.js"}},"gitHead":"dd2e6458f0240ef59ed1b4c0d8bb9bd9bf3a5aaa","scripts":{"lint":"eslint","test":"jest --watchAll --verbose","build":"pnpm lint && pnpm test:ci && tsup","test:ci":"jest --ci --verbose","test:jest":"pnpm test jest.test.ts","test:jsdom":"JSDOM=true pnpm test","test:verify":"pnpm test verify.test.ts","test:ci:jsdom":"JSDOM=true pnpm test:ci","test:coverage":"concurrently --prefix none --kill-others \"pnpm jest --watchAll --verbose --coverage\" \"pnpm test:serve-coverage\"","test:exception":"pnpm test exception.test.ts","test:signature":"pnpm test signature.test.ts","test:coverage:jsdom":"JSDOM=true pnpm test:coverage","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/crypto-signature.git","type":"git"},"_npmVersion":"10.9.0","description":"Lightweight TypeScript Signatures library","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"@alessiofrittoli/exception":"^1.2.0","@alessiofrittoli/crypto-key":"^1.0.0","@alessiofrittoli/type-utils":"^1.2.0","@alessiofrittoli/crypto-buffer":"^2.0.1","@alessiofrittoli/crypto-algorithm":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.3.5","dotenv":"^16.4.7","eslint":"^9.17.0","globals":"^15.14.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/jest":"^29.5.14","@types/node":"^22.10.2","http-server":"^14.1.1","concurrently":"^9.1.0","@jest/globals":"^29.7.0","typescript-eslint":"^8.18.1","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/crypto-signature_1.3.1_1734794878118_0.7666160935995507","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@alessiofrittoli/crypto-signature","version":"2.0.0","keywords":["nodejs","signatures","digital-signatures"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/crypto-signature@2.0.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/crypto-signature#readme","bugs":{"url":"https://github.com/alessiofrittoli/crypto-signature/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"f8e6cec686d9f6689d37409105f49a92dcffd965","tarball":"https://registry.npmjs.org/@alessiofrittoli/crypto-signature/-/crypto-signature-2.0.0.tgz","fileCount":15,"integrity":"sha512-9g2/RbNy/g/2UrEGtjo/bT128wT4b6Rj+3UVbPtCcpUotFOQRwyROSibhXmHxbNZBJOqQXgnm5DV2v5GpdlNnw==","signatures":[{"sig":"MEQCIEhvn9m2FlHc+mgPmdLlWWpsqnMtdQVLIJYAuE28jYNYAiA16/ZCw4QqtS/IaaWUhA3dee0cGhWh3vc5E5Qm8K9nHA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27828},"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"},"./error":{"types":"./dist/error.d.ts","import":"./dist/error.mjs","require":"./dist/error.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.js"}},"gitHead":"7ac0c1ded7eef6782f6a6e73b6a6a4549a731d77","scripts":{"lint":"eslint","test":"pnpm test:watch","build":"pnpm lint && pnpm test:ci && tsup","release":"node scripts/publish.js --verbose --npm","test:ci":"jest --ci --verbose","test:jest":"pnpm test:watch jest.test.ts","test:watch":"jest --watchAll --verbose","build:watch":"tsup --watch","test:coverage":"pnpm test:watch --coverage","test:signature":"pnpm test signature.test.ts","test:ci:coverage":"pnpm test:ci --coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/crypto-signature.git","type":"git"},"_npmVersion":"10.9.0","description":"Lightweight TypeScript Signatures library","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","dependencies":{"@alessiofrittoli/exception":"^2.0.0","@alessiofrittoli/crypto-key":"^2.0.0","@alessiofrittoli/type-utils":"^1.5.0","@alessiofrittoli/crypto-buffer":"^3.2.0","@alessiofrittoli/crypto-algorithm":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.3.5","dotenv":"^16.4.7","eslint":"^9.17.0","globals":"^15.14.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/jest":"^29.5.14","@types/node":"^22.10.2","http-server":"^14.1.1","concurrently":"^9.1.2","@jest/globals":"^29.7.0","typescript-eslint":"^8.19.0","jest-environment-jsdom":"^29.7.0","@alessiofrittoli/node-scripts":"^2.2.1"},"_npmOperationalInternal":{"tmp":"tmp/crypto-signature_2.0.0_1735670774240_0.34418629767124576","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@alessiofrittoli/crypto-signature","version":"2.1.0","keywords":["nodejs","signatures","digital-signatures"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/crypto-signature@2.1.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/crypto-signature#readme","bugs":{"url":"https://github.com/alessiofrittoli/crypto-signature/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"64c9b2176dae460d0cec41026c0f4bfa07e7cfeb","tarball":"https://registry.npmjs.org/@alessiofrittoli/crypto-signature/-/crypto-signature-2.1.0.tgz","fileCount":21,"integrity":"sha512-wqmc3Wz5wcDRAXGnyHJDKOY5TJV6mP9Bo68hHCjH1NiMyejYmFUCzpC/7dHCtfQa5HhaPC1tf5qSgBMtpEVLhA==","signatures":[{"sig":"MEUCIEBpSr4XdFR3KOZHyM0vwXOr6+GaTblXMYpRh84tEyh0AiEArTuS5l1S6IwloOleBGh4w5RhJajKd0HAhkypcdO4SgE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55346},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["@alessiofrittoli/type-utils","esbuild"]},"types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./error":{"types":"./dist/error.d.ts","import":"./dist/error.mjs","require":"./dist/error.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.js"}},"funding":[{"url":"https://github.com/sponsors/alessiofrittoli","type":"github"}],"gitHead":"961c4f21e5c5f7627ead0708c8842110631432c7","scripts":{"//1a":"*********************************************************************","//1b":"*********************** BUILD - LINT - RELEASE **********************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","//4a":"*********************************************************************","//4b":"************************ TARGETED UNIT TESTS ************************","//4c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && tsup","release":"node scripts/publish.js --verbose --npm","test:ci":"jest --ci --verbose","test:watch":"jest --watchAll --verbose","build:watch":"tsup --watch","test:coverage":"pnpm test:watch --coverage","test:signature":"pnpm test signature.test.ts","test:ci:coverage":"pnpm test:ci --coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/crypto-signature.git","type":"git"},"_npmVersion":"10.9.0","description":"Lightweight TypeScript Signatures library","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","dependencies":{"@alessiofrittoli/exception":"^2.4.0","@alessiofrittoli/crypto-key":"^3.0.0","@alessiofrittoli/type-utils":"^1.6.1","@alessiofrittoli/crypto-buffer":"^3.4.0","@alessiofrittoli/crypto-algorithm":"^2.1.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","dotenv":"^16.4.7","eslint":"^9.22.0","globals":"^16.0.0","ts-jest":"^29.2.6","ts-node":"^10.9.2","@eslint/js":"^9.22.0","typescript":"^5.8.2","@types/jest":"^29.5.14","@types/node":"^22.13.11","http-server":"^14.1.1","concurrently":"^9.1.2","@jest/globals":"^29.7.0","typescript-eslint":"^8.27.0","@alessiofrittoli/node-scripts":"^2.3.1"},"_npmOperationalInternal":{"tmp":"tmp/crypto-signature_2.1.0_1742556696764_0.5316648143032625","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@alessiofrittoli/crypto-signature","version":"2.2.0","keywords":["nodejs","signatures","digital-signatures"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/crypto-signature@2.2.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/crypto-signature#readme","bugs":{"url":"https://github.com/alessiofrittoli/crypto-signature/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"028ca5ef910bc8a187baa9851b75b97e1c28f9f3","tarball":"https://registry.npmjs.org/@alessiofrittoli/crypto-signature/-/crypto-signature-2.2.0.tgz","fileCount":21,"integrity":"sha512-RP+lkimE+X3t/rMCv8kiaRsq4Ud1iEuAoqtU7irgZzvNfiWkMaum8mLZGFhAAitlD8sY/weWkhGjeVnzLKixaQ==","signatures":[{"sig":"MEYCIQD1elQw+8JeC4mUbU1jCOvHIjVsx6fn7qvShIy9SJQRTwIhALRyktKdI6+pzoTLvs/nG7KWkCuuFUuvzSbi+weqJY7t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54970},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["@alessiofrittoli/type-utils","esbuild"]},"types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./error":{"types":"./dist/error.d.ts","import":"./dist/error.mjs","require":"./dist/error.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.js"}},"funding":[{"url":"https://github.com/sponsors/alessiofrittoli","type":"github"}],"gitHead":"092d2d1f5430b9e7e750aa4e399e007a0ddbfdb7","scripts":{"//1a":"*********************************************************************","//1b":"*********************** BUILD - LINT - RELEASE **********************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && tsup","release":"node scripts/publish.js --verbose --npm","test:ci":"jest --ci --verbose","test:watch":"jest --watchAll --verbose","build:watch":"tsup --watch","test:coverage":"pnpm test:watch --coverage","test:ci:coverage":"pnpm test:ci --coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/crypto-signature.git","type":"git"},"_npmVersion":"10.9.0","description":"Lightweight TypeScript Signatures library","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","dependencies":{"@alessiofrittoli/exception":"^2.5.0","@alessiofrittoli/crypto-key":"^3.1.0","@alessiofrittoli/type-utils":"^1.7.0","@alessiofrittoli/crypto-buffer":"^3.5.0","@alessiofrittoli/crypto-algorithm":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","dotenv":"^16.4.7","eslint":"^9.23.0","globals":"^16.0.0","ts-jest":"^29.2.6","ts-node":"^10.9.2","@eslint/js":"^9.23.0","typescript":"^5.8.2","@types/jest":"^29.5.14","@types/node":"^22.13.11","http-server":"^14.1.1","concurrently":"^9.1.2","@jest/globals":"^29.7.0","typescript-eslint":"^8.27.0","@alessiofrittoli/node-scripts":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/crypto-signature_2.2.0_1742644816182_0.1467714816827912","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@alessiofrittoli/crypto-signature","version":"2.3.0","keywords":["nodejs","signatures","digital-signatures"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/crypto-signature@2.3.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/crypto-signature#readme","bugs":{"url":"https://github.com/alessiofrittoli/crypto-signature/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"bdf317b37cd13eb87989274b6ce77bf6fe654804","tarball":"https://registry.npmjs.org/@alessiofrittoli/crypto-signature/-/crypto-signature-2.3.0.tgz","fileCount":17,"integrity":"sha512-LwgOHtSBdVzOa/yJF8K5UY9fPmqAqSxQCap35kKuOtvpAhn1Hv8nDA0Qw19s0H/XVoqrLep2IUeOux3kTBChug==","signatures":[{"sig":"MEUCIQDmyaa6yt/+LcfrNyLmXsTc3pdclIFyuGSQEYiV0sr5WgIgSCJwOcXMOVAM7hohcAflu/HF0tRxpHAopnlmnrcxsAM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30701},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["@alessiofrittoli/type-utils","esbuild"]},"types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./error":{"types":"./dist/error.d.ts","import":"./dist/error.mjs","require":"./dist/error.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.mjs","require":"./dist/types.js"}},"funding":[{"url":"https://github.com/sponsors/alessiofrittoli","type":"github"}],"gitHead":"cf91ea35fb6df027ace7a915684209c7bcf0100a","scripts":{"dev":"NODE_ENV=development tsup --watch","//1a":"*********************************************************************","//1b":"******************** DEV - BUILD - LINT - RELEASE *******************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && pnpm build:prod","release":"node scripts/publish.js --verbose --npm","test:ci":"jest --ci --verbose","build:prod":"NODE_ENV=production tsup","test:watch":"jest --watchAll --verbose","test:coverage":"pnpm test:watch --coverage","test:coverage:ci":"pnpm test:ci --coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/crypto-signature.git","type":"git"},"_npmVersion":"11.0.0","description":"Lightweight TypeScript Signatures library","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","dependencies":{"@alessiofrittoli/exception":"^3.2.0","@alessiofrittoli/crypto-key":"^3.2.0","@alessiofrittoli/type-utils":"^1.8.0","@alessiofrittoli/crypto-buffer":"^3.6.0","@alessiofrittoli/crypto-algorithm":"^2.3.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","dotenv":"^16.5.0","eslint":"^9.26.0","globals":"^16.0.0","ts-jest":"^29.3.2","ts-node":"^10.9.2","@eslint/js":"^9.26.0","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.3","http-server":"^14.1.1","concurrently":"^9.1.2","@jest/globals":"^29.7.0","typescript-eslint":"^8.31.1","@alessiofrittoli/node-scripts":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/crypto-signature_2.3.0_1746284491857_0.2589352067472084","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@alessiofrittoli/crypto-signature","version":"2.4.0","keywords":["nodejs","signatures","digital-signatures"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/crypto-signature@2.4.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/crypto-signature#readme","bugs":{"url":"https://github.com/alessiofrittoli/crypto-signature/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"6f90093ca407ca759d1c09cc9cc98ec3322c26a5","tarball":"https://registry.npmjs.org/@alessiofrittoli/crypto-signature/-/crypto-signature-2.4.0.tgz","fileCount":17,"integrity":"sha512-yBAUCHmMtWe8OKSNIxlcaEiC7WOV75va0N+Yoiq8DqTSCVyPM5u7j9hmfzDMZiwkzQ3MRwzgdv8lAU2bMxWdCA==","signatures":[{"sig":"MEUCIQDcqn5vvd6JtXVMLOFMQ2zTZd6gX9r4N0tv2+5C8GlP8wIgWug7Gb4/37BqVgYFmDvVElx6pFf6RpkazQLkhCrm1zk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30822},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./error":{"import":{"types":"./dist/error.d.mts","default":"./dist/error.mjs"},"require":{"types":"./dist/error.d.ts","default":"./dist/error.js"}},"./types":{"import":{"types":"./dist/types.d.mts"},"require":{"types":"./dist/types.d.ts"}}},"funding":[{"url":"https://github.com/sponsors/alessiofrittoli","type":"github"}],"gitHead":"2cc1f52c5e369b6cb3bf2098a09de7cb5a61e27a","scripts":{"dev":"cross-env NODE_ENV=development tsup --watch","//1a":"*********************************************************************","//1b":"******************** DEV - BUILD - LINT - RELEASE *******************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && pnpm build:prod","release":"node scripts/release.js --verbose --npm","test:ci":"jest --ci --verbose","build:prod":"cross-env NODE_ENV=production tsup","test:watch":"jest --watchAll --verbose","test:coverage":"pnpm test:watch --coverage","test:coverage:ci":"pnpm test:ci --coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/crypto-signature.git","type":"git"},"_npmVersion":"11.5.2","description":"Lightweight TypeScript Signatures library","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","dependencies":{"@alessiofrittoli/exception":"^3.3.1","@alessiofrittoli/crypto-key":"^3.3.0","@alessiofrittoli/type-utils":"^1.9.0","@alessiofrittoli/crypto-buffer":"^3.8.0","@alessiofrittoli/crypto-algorithm":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","tsup":"^8.5.1","dotenv":"^17.2.3","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.6","ts-node":"^10.9.2","cross-env":"^10.1.0","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","http-server":"^14.1.1","concurrently":"^9.2.1","@jest/globals":"^30.2.0","typescript-eslint":"^8.48.1","@alessiofrittoli/node-scripts":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/crypto-signature_2.4.0_1764869672340_0.6174358828476465","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@alessiofrittoli/crypto-signature","version":"2.5.0","keywords":["nodejs","signatures","digital-signatures"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/crypto-signature@2.5.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/crypto-signature#readme","bugs":{"url":"https://github.com/alessiofrittoli/crypto-signature/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"724ee9fd26a8c3c979f4c2bc6e7f8438ef16d85a","tarball":"https://registry.npmjs.org/@alessiofrittoli/crypto-signature/-/crypto-signature-2.5.0.tgz","fileCount":17,"integrity":"sha512-oC66n6vnBCvacFLuSjE3xWRbGxPOq/V+WKgC0iP4cF9/LrzMQrDniiY/Z0N5SN/PhdhwWIGHgjpyWN2wD1pLbA==","signatures":[{"sig":"MEQCICMPRGKmVfrF7rasIHkjwp70yNJzV8B9unn/dGJ69TucAiA/vBl0GJYpq7ez4+xSYv7deMp6rgmgN5sEM03BIbOM5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33464},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./error":{"import":{"types":"./dist/error.d.mts","default":"./dist/error.mjs"},"require":{"types":"./dist/error.d.ts","default":"./dist/error.js"}},"./types":{"import":{"types":"./dist/types.d.mts"},"require":{"types":"./dist/types.d.ts"}}},"funding":[{"url":"https://github.com/sponsors/alessiofrittoli","type":"github"}],"gitHead":"aa4bf71a4c2b8fe8aacb801cd0e2b61eab22382d","scripts":{"dev":"cross-env NODE_ENV=development tsup --watch","//1a":"*********************************************************************","//1b":"******************** DEV - BUILD - LINT - RELEASE *******************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && pnpm build:prod","release":"node scripts/release.js --verbose --npm","test:ci":"jest --ci --verbose","build:prod":"cross-env NODE_ENV=production tsup","test:watch":"jest --watchAll --verbose","test:coverage":"pnpm test:watch --coverage","test:coverage:ci":"pnpm test:ci --coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/crypto-signature.git","type":"git"},"_npmVersion":"11.5.2","description":"Lightweight TypeScript Signatures library","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","dependencies":{"@alessiofrittoli/exception":"^3.5.0","@alessiofrittoli/crypto-key":"^3.3.0","@alessiofrittoli/crypto-buffer":"^3.8.0","@alessiofrittoli/crypto-algorithm":"^2.4.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","tsup":"^8.5.1","dotenv":"^17.2.3","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.6","ts-node":"^10.9.2","cross-env":"^10.1.0","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","http-server":"^14.1.1","concurrently":"^9.2.1","@jest/globals":"^30.2.0","typescript-eslint":"^8.48.1","@alessiofrittoli/node-scripts":"^3.3.0"},"_npmOperationalInternal":{"tmp":"tmp/crypto-signature_2.5.0_1764874819571_0.820240455374347","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"@alessiofrittoli/crypto-signature","version":"2.5.1","description":"Lightweight TypeScript Signatures library","author":{"name":"Alessio Frittoli","email":"info@alessiofrittoli.it","url":"https://alessiofrittoli.it"},"license":"MIT","funding":[{"type":"github","url":"https://github.com/sponsors/alessiofrittoli"}],"keywords":["nodejs","signatures","digital-signatures"],"homepage":"https://github.com/alessiofrittoli/crypto-signature#readme","bugs":{"url":"https://github.com/alessiofrittoli/crypto-signature/issues","email":"info@alessiofrittoli.it"},"repository":{"type":"git","url":"git+https://github.com/alessiofrittoli/crypto-signature.git"},"main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./error":{"import":{"types":"./dist/error.d.mts","default":"./dist/error.mjs"},"require":{"types":"./dist/error.d.ts","default":"./dist/error.js"}},"./types":{"import":{"types":"./dist/types.d.mts"},"require":{"types":"./dist/types.d.ts"}}},"sideEffects":false,"scripts":{"//1a":"*********************************************************************","//1b":"******************** DEV - BUILD - LINT - RELEASE *******************","//1c":"*********************************************************************","dev":"cross-env NODE_ENV=development tsup --watch","build:prod":"cross-env NODE_ENV=production tsup","build":"pnpm lint && pnpm test:ci && pnpm build:prod","lint":"eslint","release":"node scripts/release.js --verbose --npm","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","test":"jest --verbose","test:watch":"jest --watchAll --verbose","test:ci":"jest --ci --verbose","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","test:coverage":"pnpm test:watch --coverage","test:coverage:ci":"pnpm test:ci --coverage","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\""},"devDependencies":{"@alessiofrittoli/node-scripts":"^3.3.0","@eslint/js":"^9.39.1","@jest/globals":"^30.2.0","@types/jest":"^30.0.0","@types/node":"^24.10.1","concurrently":"^9.2.1","cross-env":"^10.1.0","dotenv":"^17.2.3","eslint":"^9.39.1","globals":"^16.5.0","http-server":"^14.1.1","jest":"^30.2.0","ts-jest":"^29.4.6","ts-node":"^10.9.2","tsup":"^8.5.1","typescript":"^5.9.3","typescript-eslint":"^8.49.0"},"dependencies":{"@alessiofrittoli/crypto-algorithm":"^2.4.0","@alessiofrittoli/crypto-buffer":"^3.8.0","@alessiofrittoli/crypto-key":"^3.3.0","@alessiofrittoli/exception":"^3.5.0"},"gitHead":"f16f5d285aaa52b635ea3dc8a2e9ea56b1398a3f","_id":"@alessiofrittoli/crypto-signature@2.5.1","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-B+gccToQ2btJ56co/tbBpLo8nrz9DBmLOpX+QGl6gHTLwFfJc09+N77tWEeniRGuQ7EYKOQRPGA/BleOjbA0uA==","shasum":"390da400a5facfac3f3e7b4d776266eab8962f21","tarball":"https://registry.npmjs.org/@alessiofrittoli/crypto-signature/-/crypto-signature-2.5.1.tgz","fileCount":17,"unpackedSize":33048,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEUyzgpT9pFZBI+ItwovSkKTnpkSY+RBD7QoyyEIW/RNAiBpRrq7tmtwb65WOW0D7ty+IzFQIyM4fsX+VNKf86nPtQ=="}]},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"directories":{},"maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/crypto-signature_2.5.1_1765218906309_0.9732720635873724"},"_hasShrinkwrap":false}},"time":{"created":"2024-12-14T15:34:57.759Z","modified":"2025-12-08T18:35:06.654Z","1.0.0":"2024-12-14T15:34:58.012Z","1.0.1":"2024-12-14T15:45:26.810Z","1.1.0":"2024-12-14T18:58:48.283Z","1.2.0":"2024-12-17T15:19:09.478Z","1.2.1":"2024-12-17T15:42:58.282Z","1.3.0":"2024-12-21T15:06:10.963Z","1.3.1":"2024-12-21T15:27:58.277Z","2.0.0":"2024-12-31T18:46:14.420Z","2.1.0":"2025-03-21T11:31:36.974Z","2.2.0":"2025-03-22T12:00:16.369Z","2.3.0":"2025-05-03T15:01:32.057Z","2.4.0":"2025-12-04T17:34:32.481Z","2.5.0":"2025-12-04T19:00:19.711Z","2.5.1":"2025-12-08T18:35:06.457Z"},"bugs":{"url":"https://github.com/alessiofrittoli/crypto-signature/issues","email":"info@alessiofrittoli.it"},"author":{"name":"Alessio Frittoli","email":"info@alessiofrittoli.it","url":"https://alessiofrittoli.it"},"license":"MIT","homepage":"https://github.com/alessiofrittoli/crypto-signature#readme","keywords":["nodejs","signatures","digital-signatures"],"repository":{"type":"git","url":"git+https://github.com/alessiofrittoli/crypto-signature.git"},"description":"Lightweight TypeScript Signatures library","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"readme":"# Crypto Signature 🔏\r\n\r\n[![NPM Latest Version][version-badge]][npm-url] [![Coverage Status][coverage-badge]][coverage-url] [![Socket Status][socket-badge]][socket-url] [![NPM Monthly Downloads][downloads-badge]][npm-url] [![Dependencies][deps-badge]][deps-url]\r\n\r\n[![GitHub Sponsor][sponsor-badge]][sponsor-url]\r\n\r\n[version-badge]: https://img.shields.io/npm/v/%40alessiofrittoli%2Fcrypto-signature\r\n[npm-url]: https://npmjs.org/package/%40alessiofrittoli%2Fcrypto-signature\r\n[coverage-badge]: https://coveralls.io/repos/github/alessiofrittoli/crypto-signature/badge.svg\r\n[coverage-url]: https://coveralls.io/github/alessiofrittoli/crypto-signature\r\n[socket-badge]: https://socket.dev/api/badge/npm/package/@alessiofrittoli/crypto-signature\r\n[socket-url]: https://socket.dev/npm/package/@alessiofrittoli/crypto-signature/overview\r\n[downloads-badge]: https://img.shields.io/npm/dm/%40alessiofrittoli%2Fcrypto-signature.svg\r\n[deps-badge]: https://img.shields.io/librariesio/release/npm/%40alessiofrittoli%2Fcrypto-signature\r\n[deps-url]: https://libraries.io/npm/%40alessiofrittoli%2Fcrypto-signature\r\n[sponsor-badge]: https://img.shields.io/static/v1?label=Fund%20this%20package&message=%E2%9D%A4&logo=GitHub&color=%23DB61A2\r\n[sponsor-url]: https://github.com/sponsors/alessiofrittoli\r\n\r\n## Lightweight TypeScript Signatures library\r\n\r\nThis documentation provides an overview of the Digital Signature module and demonstrates how to use its methods for creating and verifying digital signatures.\r\n\r\n### Table of Contents\r\n\r\n- [Getting started](#getting-started)\r\n  - [Usage](#usage)\r\n  - [Creating a Digital Signature](#creating-a-digital-signature)\r\n  - [Verifying a Digital Signature](#verifying-a-digital-signature)\r\n  - [Supported Algorithms](#supported-algorithms)\r\n  - [Error Handling](#error-handling)\r\n- [Development](#development)\r\n  - [ESLint](#eslint)\r\n  - [Jest](#jest)\r\n- [Contributing](#contributing)\r\n- [Security](#security)\r\n- [Credits](#made-with-)\r\n\r\n### Overview\r\n\r\nThe module supports multiple algorithms for signing and verifying data, including HMAC, RSA, RSASSA-PSS, DSA, EcDSA and EdDSA. It provides a synchronous interface for cryptographic operations using Node.js's crypto module and custom utility classes.\r\n\r\n---\r\n\r\n### Getting started\r\n\r\nRun the following command to start using `crypto-signature` in your projects:\r\n\r\n```bash\r\nnpm i @alessiofrittoli/crypto-signature\r\n```\r\n\r\nor using `pnpm`\r\n\r\n```bash\r\npnpm i @alessiofrittoli/crypto-signature\r\n```\r\n\r\n---\r\n\r\n#### Usage\r\n\r\n##### Importing the Module\r\n\r\n```ts\r\nimport { Signature } from \"@alessiofrittoli/crypto-signature\";\r\nimport type { Sign } from \"@alessiofrittoli/crypto-signature\";\r\n// or\r\nimport type { Sign } from \"@alessiofrittoli/crypto-signature/types\";\r\n```\r\n\r\n---\r\n\r\n#### Creating a Digital Signature\r\n\r\nThe `Signature.sign()` method generates a signature for a given data input using a specified algorithm and private key.\r\n\r\n##### Parameters\r\n\r\n| Parameter   | Type                      | Default | Description                                                                                     |\r\n| ----------- | ------------------------- | ------- | ----------------------------------------------------------------------------------------------- |\r\n| `data`      | `CoerceToUint8ArrayInput` | -       | The data to be signed.                                                                          |\r\n| `key`       | `Sign.PrivateKey`         | -       | The private key used for signing. This can be a symmetric key, PEM private key or a key object. |\r\n| `algorithm` | `Sign.AlgorithmJwkName`   | `HS256` | The JWK algorithm name.                                                                         |\r\n\r\n##### Returns\r\n\r\nType: `Buffer`\r\n\r\nThe generated signature Node.js Buffer.\r\n\r\n##### Example\r\n\r\n```ts\r\nconst data = \"This is the data to sign\";\r\nconst key = crypto.createSecretKey(Buffer.from(\"your-secret-key\"));\r\nconst algorithm = \"HS256\";\r\n\r\ntry {\r\n  const signature = Signature.sign(data, key, algorithm);\r\n  console.log(\"Generated Signature:\", signature.toString(\"hex\"));\r\n} catch (error) {\r\n  console.error(\"Error generating signature:\", error);\r\n}\r\n```\r\n\r\n#### Verifying a Digital Signature\r\n\r\nThe `Signature.isValid()` method verifies the integrity and authenticity of a digital signature.\r\n\r\n##### Parameters\r\n\r\n| Parameter   | Type                      | Default | Description                                                                                        |\r\n| ----------- | ------------------------- | ------- | -------------------------------------------------------------------------------------------------- |\r\n| `signature` | `CoerceToUint8ArrayInput` | -       | The signature to verify.                                                                           |\r\n| `data`      | `CoerceToUint8ArrayInput` | -       | The original data that was signed.                                                                 |\r\n| `key`       | `Sign.PublicKey`          | -       | The public key used for verification. This can be a symmetric key, PEM public key or a key object. |\r\n| `algorithm` | `Sign.AlgorithmJwkName`   | `HS256` | The JWK algorithm name.                                                                            |\r\n\r\n##### Returns\r\n\r\nType: `true`\r\n\r\nReturns `true` if the signature is valid. Throws an exception otherwise.\r\n\r\n##### Example\r\n\r\n```ts\r\nconst signature = Buffer.from(\"signature-in-hex\", \"hex\");\r\nconst data = \"This is the data to verify\";\r\nconst key = crypto.createSecretKey(Buffer.from(\"your-secret-key\"));\r\nconst algorithm = \"HS256\";\r\n\r\ntry {\r\n  const isValid = Signature.isValid(signature, data, key, algorithm);\r\n  console.log(\"Signature is valid:\", isValid);\r\n} catch (error) {\r\n  console.error(\"Error verifying signature:\", error);\r\n}\r\n```\r\n\r\n#### Supported Algorithms\r\n\r\nThe module supports the following algorithms:\r\n\r\n| Type         | JWK name | Description                                                        |\r\n| ------------ | -------- | ------------------------------------------------------------------ |\r\n| `HMAC`       |          |                                                                    |\r\n|              | `HS1`    | Signature generated/verified with `HMAC` key and `SHA-1`.          |\r\n|              | `HS256`  | Signature generated/verified with `HMAC` key and `SHA-256`.        |\r\n|              | `HS384`  | Signature generated/verified with `HMAC` key and `SHA-384`.        |\r\n|              | `HS512`  | Signature generated/verified with `HMAC` key and `SHA-512`.        |\r\n| `DSA`        |          |                                                                    |\r\n|              | `DS1`    | Signature generated/verified with `DSA` keys and `SHA-1`.          |\r\n|              | `DS256`  | Signature generated/verified with `DSA` keys and `SHA-256`.        |\r\n|              | `DS384`  | Signature generated/verified with `DSA` keys and `SHA-384`.        |\r\n|              | `DS512`  | Signature generated/verified with `DSA` keys and `SHA-512`.        |\r\n| `EcDSA`      |          |                                                                    |\r\n|              | `ES256`  | Signature generated/verified with `EC` keys and `SHA-256`.         |\r\n|              | `ES384`  | Signature generated/verified with `EC` keys and `SHA-384`.         |\r\n|              | `ES512`  | Signature generated/verified with `EC` keys and `SHA-512`.         |\r\n| `EdDSA`      |          |                                                                    |\r\n|              | `EdDSA`  | Signature generated/verified with `ed448` keys.                    |\r\n|              | `EdDSA`  | Signature generated/verified with `ed25519` keys.                  |\r\n| `RSA`        |          |                                                                    |\r\n|              | `RS1`    | Signature generated/verified with `RSA` keys and `SHA-1`.          |\r\n|              | `RS256`  | Signature generated/verified with `RSA` keys and `SHA-256`.        |\r\n|              | `RS384`  | Signature generated/verified with `RSA` keys and `SHA-384`.        |\r\n|              | `RS512`  | Signature generated/verified with `RSA` keys and `SHA-512`.        |\r\n| `RSASSA-PSS` |          |                                                                    |\r\n|              | `PS256`  | Signature generated/verified with `RSASSA-PSS` keys and `SHA-256`. |\r\n|              | `PS384`  | Signature generated/verified with `RSASSA-PSS` keys and `SHA-384`. |\r\n|              | `PS512`  | Signature generated/verified with `RSASSA-PSS` keys and `SHA-512`. |\r\n\r\n---\r\n\r\n### Error handling\r\n\r\nThis module throws a new `Exception` when an error occures providing an error code that will help in error handling.\r\n\r\nThe `ErrorCode` enumerator can be used to handle different errors with ease.\r\n\r\n<details>\r\n\r\n<summary>`ErrorCode` enum</summary>\r\n\r\n| Constant        | Description                                                                                                                                                                                            |\r\n| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\r\n| `UNKNOWN`       | Thrown when:                                                                                                                                                                                           |\r\n|                 | - `Signature.sign()` encounters an unexpected error while creating a signature (mostly due to unsupported routine). The original thrown error is being reported in the `Exception.cause` property.     |\r\n|                 | - `Signature.isValid()` encounters an unexpected error while verifying a signature (mostly due to unsupported routine). The original thrown error is being reported in the `Exception.cause` property. |\r\n| `EMPTY_VALUE`   | Thrown when:                                                                                                                                                                                           |\r\n|                 | `Signature.sign()` has no `data` to sign.                                                                                                                                                              |\r\n|                 | `Signature.isValid()` has no `data` to verify.                                                                                                                                                         |\r\n| `INVALID_SIGN`  | Thrown when `Signature.isValid()` encounter an invalid signature (altered data, altered signature, wrong PublicKey).                                                                                   |\r\n| `NO_SIGN`       | Thrown when `Signature.isValid()` has no `signature` to verify.                                                                                                                                        |\r\n| `NO_PRIVATEKEY` | Thrown when `Signature.sign()` has no Private Key to sign with.                                                                                                                                        |\r\n| `NO_PUBLICKEY`  | Thrown when `Signature.isValid()` has no Public Key to verify the signature with.                                                                                                                      |\r\n\r\n</details>\r\n\r\n---\r\n\r\n<details>\r\n\r\n<summary>Example usage</summary>\r\n\r\n```ts\r\nimport { Exception } from \"@alessiofrittoli/exception\";\r\nimport { Signature } from \"@alessiofrittoli/crypto-signature\";\r\nimport { ErrorCode } from \"@alessiofrittoli/crypto-signature/error\";\r\n\r\ntry {\r\n  Signature.isValid(\"invalid signature\", \"Data\", \"myscretkey\");\r\n} catch (error) {\r\n  console.log(error);\r\n  // safe type guard the `error` variable.\r\n  if (Exception.isException<string, ErrorCode>(error)) {\r\n    // ... do somethign with `error.code`\r\n    if (error.code === ErrorCode.INVALID_SIGN) {\r\n      // ...\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n</details>\r\n\r\n---\r\n\r\nThis documentation covers the essential functionality of the module, allowing users to securely sign and verify data using various cryptographic algorithms.\r\n\r\n---\r\n\r\n### Development\r\n\r\n#### Install depenendencies\r\n\r\n```bash\r\nnpm install\r\n```\r\n\r\nor using `pnpm`\r\n\r\n```bash\r\npnpm i\r\n```\r\n\r\n#### Build the source code\r\n\r\nRun the following command to test and build code for distribution.\r\n\r\n```bash\r\npnpm build\r\n```\r\n\r\n#### [ESLint](https://www.npmjs.com/package/eslint)\r\n\r\nwarnings / errors check.\r\n\r\n```bash\r\npnpm lint\r\n```\r\n\r\n#### [Jest](https://npmjs.com/package/jest)\r\n\r\nRun all the defined test suites by running the following:\r\n\r\n```bash\r\n# Run tests and watch file changes.\r\npnpm test:watch\r\n\r\n# Run tests in a CI environment.\r\npnpm test:ci\r\n```\r\n\r\n- See [`package.json`](./package.json) file scripts for more info.\r\n\r\nRun tests with coverage.\r\n\r\nAn HTTP server is then started to serve coverage files from `./coverage` folder.\r\n\r\n⚠️ You may see a blank page the first time you run this command. Simply refresh the browser to see the updates.\r\n\r\n```bash\r\ntest:coverage:serve\r\n```\r\n\r\n---\r\n\r\n### Contributing\r\n\r\nContributions are truly welcome!\r\n\r\nPlease refer to the [Contributing Doc](./CONTRIBUTING.md) for more information on how to start contributing to this project.\r\n\r\nHelp keep this project up to date with [GitHub Sponsor][sponsor-url].\r\n\r\n[![GitHub Sponsor][sponsor-badge]][sponsor-url]\r\n\r\n---\r\n\r\n### Security\r\n\r\nIf you believe you have found a security vulnerability, we encourage you to **_responsibly disclose this and NOT open a public issue_**. We will investigate all legitimate reports. Email `security@alessiofrittoli.it` to disclose any security vulnerabilities.\r\n\r\n### Made with ☕\r\n\r\n<table style='display:flex;gap:20px;'>\r\n  <tbody>\r\n    <tr>\r\n      <td>\r\n        <img alt=\"avatar\" src='https://avatars.githubusercontent.com/u/35973186' style='width:60px;border-radius:50%;object-fit:contain;'>\r\n      </td>\r\n      <td>\r\n        <table style='display:flex;gap:2px;flex-direction:column;'>\r\n          <tbody>\r\n              <tr>\r\n                <td>\r\n                  <a href='https://github.com/alessiofrittoli' target='_blank' rel='noopener'>Alessio Frittoli</a>\r\n                </td>\r\n              </tr>\r\n              <tr>\r\n                <td>\r\n                  <small>\r\n                    <a href='https://alessiofrittoli.it' target='_blank' rel='noopener'>https://alessiofrittoli.it</a> |\r\n                    <a href='mailto:info@alessiofrittoli.it' target='_blank' rel='noopener'>info@alessiofrittoli.it</a>\r\n                  </small>\r\n                </td>\r\n              </tr>\r\n          </tbody>\r\n        </table>\r\n      </td>\r\n    </tr>\r\n  </tbody>\r\n</table>\r\n","readmeFilename":"README.md"}