{"_id":"@xcelsior/mfa-api","_rev":"27-2851cdf11c7a49c4e4978453b04e0f66","name":"@xcelsior/mfa-api","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@xcelsior/mfa-api","version":"1.0.0","_id":"@xcelsior/mfa-api@1.0.0","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"fd94bb7879aa9b074a529b071f0244bab7a16a3c","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.0.tgz","fileCount":16,"integrity":"sha512-V51LgbpT64uzjAlOIvYaLVvHSpshM1YNrVOBzq1NqYb0vaHLe7Ej89iAYm3q8v2J6fjAsSpYzsE8WXEPTp5s2w==","signatures":[{"sig":"MEQCIBHBgOWiv0Xo6Q/g66C+IgoDhC72HLQklgpJ9bKWY5l4AiAoxB9YsrTAmJprrD1k+ZN8l/hDnAzu51aw6dkvJuK0GA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49355},"type":"module","_from":"file:xcelsior-mfa-api-1.0.0.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/r8/lsqjxw0x5_z0cl56ccqftt140000gn/T/f1001967276574be8786bdb620664637/xcelsior-mfa-api-1.0.0.tgz","_integrity":"sha512-V51LgbpT64uzjAlOIvYaLVvHSpshM1YNrVOBzq1NqYb0vaHLe7Ej89iAYm3q8v2J6fjAsSpYzsE8WXEPTp5s2w==","_npmVersion":"10.7.0","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.14.0","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.1","@xcelsior/email":"1.0.0","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.1","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.1","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.0_1758255260901_0.9755037646970204","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@xcelsior/mfa-api","version":"1.0.1","_id":"@xcelsior/mfa-api@1.0.1","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"306b31ce1132307cbfbeedb86e60432568e5e869","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.1.tgz","fileCount":22,"integrity":"sha512-e1Tr68UqlDrCpWM3LJY2JrdvFqqTLG7iVh2M0x73C7VXqmBPkAuqm00d5QtKOxg/TVc4sPB3P7meJKcpjGeTvQ==","signatures":[{"sig":"MEUCIQCILAcKmN8BT/i+8Dp4CKZGrInwBYhL6wetPS44I1Ik+gIgTgCFxncaGadxkNgVkWsV+K//5Y/hoKYOYRIxbvQZuDo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96536},"type":"module","_from":"file:xcelsior-mfa-api-1.0.1.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/r8/lsqjxw0x5_z0cl56ccqftt140000gn/T/4e9bd462b23400170b61eb626f60fd10/xcelsior-mfa-api-1.0.1.tgz","_integrity":"sha512-e1Tr68UqlDrCpWM3LJY2JrdvFqqTLG7iVh2M0x73C7VXqmBPkAuqm00d5QtKOxg/TVc4sPB3P7meJKcpjGeTvQ==","_npmVersion":"10.7.0","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.14.0","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.1","@xcelsior/email":"1.0.1","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.1","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.2","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.1_1758340678500_0.5359469752137842","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@xcelsior/mfa-api","version":"1.0.2","_id":"@xcelsior/mfa-api@1.0.2","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"86eda50a4dbb364cad13556fa6c9d2df1672d7dd","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.2.tgz","fileCount":20,"integrity":"sha512-WFzVo8afDFTxhIVL9ekY6iFuarRUFB7Dv6isdrXZehwb1rLEjyN6ia3dOGKbvsGtMhRq3wtwU6b/ZPT0eQMWvA==","signatures":[{"sig":"MEYCIQCulvEx+ZatHdX47M94bpo/tc9VlGSc8Rh1+EZVIzDvngIhAM4lE7DFEY/KRC8t0Pig5zCjRPOR2Y7voa02r5Px92cD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52975},"type":"module","_from":"file:xcelsior-mfa-api-1.0.2.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/r8/lsqjxw0x5_z0cl56ccqftt140000gn/T/81ac9dcbc542cc1360ab7be8a9126d07/xcelsior-mfa-api-1.0.2.tgz","_integrity":"sha512-WFzVo8afDFTxhIVL9ekY6iFuarRUFB7Dv6isdrXZehwb1rLEjyN6ia3dOGKbvsGtMhRq3wtwU6b/ZPT0eQMWvA==","_npmVersion":"10.7.0","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.14.0","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.1","@xcelsior/email":"1.0.1","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.1","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.2","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.2_1758372007555_0.23499605976271698","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@xcelsior/mfa-api","version":"1.0.3","_id":"@xcelsior/mfa-api@1.0.3","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"30673bd10c2b6956185106e26031f018b578dfc1","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.3.tgz","fileCount":20,"integrity":"sha512-aQBH1mcPXxOiuYT7HChEa+P52rTCDFUZKDJNuVqzFESqLR5RQGY27XJyY0FnDknoj1tiJO/K7gyudm6+ZbL1yA==","signatures":[{"sig":"MEQCIETONUCXrrLrDWObDqUtBmsVMlji06N+uxaKWQJ32pDmAiBw3RARUQ7SaWxETWOR3ApT3H6V0tpTveAwT9VQeqkYqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52919},"type":"module","_from":"file:xcelsior-mfa-api-1.0.3.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/r8/lsqjxw0x5_z0cl56ccqftt140000gn/T/e19549728ee9edc7b8e5c8236251bb11/xcelsior-mfa-api-1.0.3.tgz","_integrity":"sha512-aQBH1mcPXxOiuYT7HChEa+P52rTCDFUZKDJNuVqzFESqLR5RQGY27XJyY0FnDknoj1tiJO/K7gyudm6+ZbL1yA==","_npmVersion":"10.7.0","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.14.0","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.1","@xcelsior/email":"1.0.1","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.1","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.2","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.3_1758460966294_0.6981200021602667","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@xcelsior/mfa-api","version":"1.0.4","_id":"@xcelsior/mfa-api@1.0.4","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"0918b7b69430a080ab991d5b874b8ee8cbd7ac15","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.4.tgz","fileCount":20,"integrity":"sha512-la/YcGGAeZQz2eRsbXOKOP/wy+SlDr9Eubfp6oiAtpVwYrzNthhIPwOrbLcFWAORGh3HBwRA/Wnr0DpL6U6D8w==","signatures":[{"sig":"MEYCIQC9Co8zd+KrAToDl+9iwrEqLXb8wKb1Ao7sBkvKkoxABAIhAIOqzd0DjLFrt253baK4WaDu2fqHRk7689+/5Shqzj5/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53129},"type":"module","_from":"file:xcelsior-mfa-api-1.0.4.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/r8/lsqjxw0x5_z0cl56ccqftt140000gn/T/6dba5068282c2461aae2f331a2b67dfc/xcelsior-mfa-api-1.0.4.tgz","_integrity":"sha512-la/YcGGAeZQz2eRsbXOKOP/wy+SlDr9Eubfp6oiAtpVwYrzNthhIPwOrbLcFWAORGh3HBwRA/Wnr0DpL6U6D8w==","_npmVersion":"10.7.0","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.14.0","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.1","@xcelsior/email":"1.0.1","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.1","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.2","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.4_1758463777399_0.3184054064966171","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@xcelsior/mfa-api","version":"1.0.5","_id":"@xcelsior/mfa-api@1.0.5","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"5a17a9a6f6fabaf592782d96583645902872f91b","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.5.tgz","fileCount":20,"integrity":"sha512-aDOlBBaDRxJooFbmeyzr7MxdXje0YAxCIIaLdnFADJIxSMJJh/pORrUBQjNcX3T26iN6QkFFfTyARgSucthJnw==","signatures":[{"sig":"MEUCIQD4irY3XVGj4XN4xBPjtJg0AzFPAb9nXoMDfy2SnsDxgAIgcijH7qcthKYkX9BHw2AbdXgk3VQ6/1x4LgpbviMaLeY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53129},"type":"module","_from":"file:xcelsior-mfa-api-1.0.5.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/r8/lsqjxw0x5_z0cl56ccqftt140000gn/T/560dacbf8ce2bd71e3818c0b0ba20ec4/xcelsior-mfa-api-1.0.5.tgz","_integrity":"sha512-aDOlBBaDRxJooFbmeyzr7MxdXje0YAxCIIaLdnFADJIxSMJJh/pORrUBQjNcX3T26iN6QkFFfTyARgSucthJnw==","_npmVersion":"10.7.0","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.14.0","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.1","@xcelsior/email":"1.0.2","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.1","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.2","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.5_1758470540160_0.5376105065872401","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@xcelsior/mfa-api","version":"1.0.6","_id":"@xcelsior/mfa-api@1.0.6","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"6e6638b7ba29f680844ef4f7be1661c211d55a20","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.6.tgz","fileCount":20,"integrity":"sha512-4LQ5iHhIpDTvLs/YLmBN5S9scd6qVtIw+/vXapOr8yF6n9tvlLorv4ZmqXfAhIkkiDuNnsqmHIhw+fJ4ZsTSCQ==","signatures":[{"sig":"MEUCIQCB5u78JRY9IXXpRiQ4FaaXou6bwRqaOdC3OggPWxm/rQIgfLxxmqqJ3XOZCg0HuKdZgdx9Z8Vrn2msDJALpbdF870=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53116},"type":"module","_from":"file:xcelsior-mfa-api-1.0.6.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/r8/lsqjxw0x5_z0cl56ccqftt140000gn/T/2b259c4878eb8824df08db60b649858d/xcelsior-mfa-api-1.0.6.tgz","_integrity":"sha512-4LQ5iHhIpDTvLs/YLmBN5S9scd6qVtIw+/vXapOr8yF6n9tvlLorv4ZmqXfAhIkkiDuNnsqmHIhw+fJ4ZsTSCQ==","_npmVersion":"10.7.0","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.14.0","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.1","@xcelsior/email":"1.0.2","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.1","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.2","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.6_1758471119681_0.5248969868262303","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@xcelsior/mfa-api","version":"1.0.7","_id":"@xcelsior/mfa-api@1.0.7","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"9cc29b9afa49e18005aea3ff2e537e0715b9f84c","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.7.tgz","fileCount":20,"integrity":"sha512-FRJOlp1Bas/cTfcZIermNPwU0tnB6tYNGAmYeDVgNiChFbhq+kPK2YtGJuUjYeyggNqy3o5LlOtI0O6d4c+FyA==","signatures":[{"sig":"MEUCIQCJsFzyxWFne0ZJ9xYvvsrSAIxFePZjAlMHRJiNwKfa5gIgWiKgum/9QmcDanuINaJhTxtlC5Q8LvW7bPk90rpMZP4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53116},"type":"module","_from":"file:xcelsior-mfa-api-1.0.7.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/40/csghs6h51qn368khq8ql5kjm0000gn/T/2bd3443059d41200b87689fe3ac50c46/xcelsior-mfa-api-1.0.7.tgz","_integrity":"sha512-FRJOlp1Bas/cTfcZIermNPwU0tnB6tYNGAmYeDVgNiChFbhq+kPK2YtGJuUjYeyggNqy3o5LlOtI0O6d4c+FyA==","_npmVersion":"10.8.2","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.19.1","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.1","@xcelsior/email":"1.0.2","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.3","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.3","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.7_1761009899814_0.05147668001734451","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@xcelsior/mfa-api","version":"1.0.8","_id":"@xcelsior/mfa-api@1.0.8","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"8180fb1facf112c8917916870271dea21a2f01b5","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.8.tgz","fileCount":20,"integrity":"sha512-LzHtLaGew8VJImBGXDLUcwcV6wuE7dETZUYmfv3MrEeXYTNC7trwNNXsOaylf6GeUAiKv2ugBDEZLRNjZWzBEQ==","signatures":[{"sig":"MEQCICheyxKKlwUUm9TmZdxpjjjcN/sj5rSnima2Ok1yfXXGAiA8iNZeKKu1lNLx66iycOxB3qKZt4CHMs/dC1xy1R2UjA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53260},"type":"module","_from":"file:xcelsior-mfa-api-1.0.8.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/40/csghs6h51qn368khq8ql5kjm0000gn/T/9caa45137f04fd00bf9b4cd8a40fd5d3/xcelsior-mfa-api-1.0.8.tgz","_integrity":"sha512-LzHtLaGew8VJImBGXDLUcwcV6wuE7dETZUYmfv3MrEeXYTNC7trwNNXsOaylf6GeUAiKv2ugBDEZLRNjZWzBEQ==","_npmVersion":"10.8.2","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.19.1","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.1","@xcelsior/email":"1.0.2","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.3","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.3","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.8_1761101609389_0.7706639980537329","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@xcelsior/mfa-api","version":"1.0.9","_id":"@xcelsior/mfa-api@1.0.9","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"bdb8c83ad6f85c4805a9747ba3b2b86355e46b22","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.9.tgz","fileCount":20,"integrity":"sha512-VaHbzeOsE0R+hyQwl2gJ7I5A6Ry+8cWEZu5qPSRK+dAh9cbAKWkt5f/5Ei5LlzpsYbqpJu+4VHMfH7ZkXzxA3w==","signatures":[{"sig":"MEQCIAaNOjTzDW88jfrwqtVNGL/J4M5Sk8mEwjjr2iWj/1gSAiBU8QX0nQfr6DG/Yx0YXs1NkC2oIRTrdoUwPv1b2DTOoQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53400},"type":"module","_from":"file:xcelsior-mfa-api-1.0.9.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/40/csghs6h51qn368khq8ql5kjm0000gn/T/a46fd9499044f0080012e65e4734ba06/xcelsior-mfa-api-1.0.9.tgz","_integrity":"sha512-VaHbzeOsE0R+hyQwl2gJ7I5A6Ry+8cWEZu5qPSRK+dAh9cbAKWkt5f/5Ei5LlzpsYbqpJu+4VHMfH7ZkXzxA3w==","_npmVersion":"10.8.2","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.19.1","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.1","@xcelsior/email":"1.0.2","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.3","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.3","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.9_1761101822956_0.1722471398259282","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@xcelsior/mfa-api","version":"1.0.10","_id":"@xcelsior/mfa-api@1.0.10","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"1bc73a6803cdec589bbd60ed82bfa7c04d1982b0","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.10.tgz","fileCount":20,"integrity":"sha512-snkGUE7Z2/XGWEp2oekiv41nP7ououVSVUTGRIfd+J7eJD+u93xfK5O+AAoB0FME39YHfaapkqdzgsoskruIUg==","signatures":[{"sig":"MEUCIFQxn35sKEkk3jitTxL1i1DVIMb8FtqupeAsa4NZdjgIAiEA9mL8skV/h8ALQb05CRO3MyJ0K+A/IDAiwKWl9CclNTo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53401},"type":"module","_from":"file:xcelsior-mfa-api-1.0.10.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/40/csghs6h51qn368khq8ql5kjm0000gn/T/019fd5d18e37e053c0918c132ea32873/xcelsior-mfa-api-1.0.10.tgz","_integrity":"sha512-snkGUE7Z2/XGWEp2oekiv41nP7ououVSVUTGRIfd+J7eJD+u93xfK5O+AAoB0FME39YHfaapkqdzgsoskruIUg==","_npmVersion":"10.8.2","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.19.1","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.1","@xcelsior/email":"1.0.2","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.4","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.4","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.10_1761125648131_0.6692816325056434","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@xcelsior/mfa-api","version":"1.0.11","_id":"@xcelsior/mfa-api@1.0.11","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"f080d5fad2a111843400d407996321df95a1b781","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.11.tgz","fileCount":20,"integrity":"sha512-YDFEYzgWdtTTn4md66ZWhwB1QpK/D2QtYyhjHFRXR8nzwLwFogP+4E0HgbuxI51QQBsbAGGszw1dmy9vfZSBXQ==","signatures":[{"sig":"MEUCIQDxPd7WhvUopHBE7fOM3l3v4+pIZ4bZjar3Pad66cHfaQIgQ3QkjCen00KndLWDJSWgwvKxDCUYCLKR3ru1IImPyg4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53401},"type":"module","_from":"file:xcelsior-mfa-api-1.0.11.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/40/csghs6h51qn368khq8ql5kjm0000gn/T/2fbe33188af9ce64fae05a820f2f18ec/xcelsior-mfa-api-1.0.11.tgz","_integrity":"sha512-YDFEYzgWdtTTn4md66ZWhwB1QpK/D2QtYyhjHFRXR8nzwLwFogP+4E0HgbuxI51QQBsbAGGszw1dmy9vfZSBXQ==","_npmVersion":"10.8.2","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.19.1","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.1","@xcelsior/email":"1.0.2","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.4","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.5","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.11_1763410917379_0.6063194379501204","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@xcelsior/mfa-api","version":"1.0.12","_id":"@xcelsior/mfa-api@1.0.12","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"cf2fc91836020646859218e32c9f9529fddef834","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.12.tgz","fileCount":20,"integrity":"sha512-PfunY9hNv5vzi3SyPZav2b+OUohs4iAKVGdh1DN+1TkwCohLAbwnaVOmG24CM36yKw/K3LkhBybJ8FT/nQz+Ug==","signatures":[{"sig":"MEUCIG+iG82v9bAoDo3o8n1Anm0Wq0NCWgykNQCxdkRPr2uXAiEA8aqQ56WLpEQgyxnwnTg1HwYA54iZs5CGtEXj5tWGEK0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53401},"type":"module","_from":"file:xcelsior-mfa-api-1.0.12.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/40/csghs6h51qn368khq8ql5kjm0000gn/T/814c2d6f72109a5c4201aa3644bfa4ae/xcelsior-mfa-api-1.0.12.tgz","_integrity":"sha512-PfunY9hNv5vzi3SyPZav2b+OUohs4iAKVGdh1DN+1TkwCohLAbwnaVOmG24CM36yKw/K3LkhBybJ8FT/nQz+Ug==","_npmVersion":"10.8.2","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.19.1","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.2","@xcelsior/email":"1.0.2","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.4","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.5","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.12_1763411078563_0.6704669784437491","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@xcelsior/mfa-api","version":"1.0.13","_id":"@xcelsior/mfa-api@1.0.13","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"4edb8bb8381636adacc90532cd489b9074a479ee","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.13.tgz","fileCount":20,"integrity":"sha512-t+n33rJTl/N0cbnhV3iTl7YnBHjnZt4lGEpK+V/e/rkQRNNWs0txMKkn3wM7/YaV/sNpIrSlFMAxTVcnbwbctw==","signatures":[{"sig":"MEUCICg2X01Y5je6iSfGcb/FVX+ampTjCSZ4H7GR4Q6S939YAiEA7MgWen9ydeywZLW+geY61aXkVzf8MAU3l5OtEpN9/Pc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53401},"type":"module","_from":"file:xcelsior-mfa-api-1.0.13.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/40/csghs6h51qn368khq8ql5kjm0000gn/T/b675b70a1f93cd419a7bb352ac21c54d/xcelsior-mfa-api-1.0.13.tgz","_integrity":"sha512-t+n33rJTl/N0cbnhV3iTl7YnBHjnZt4lGEpK+V/e/rkQRNNWs0txMKkn3wM7/YaV/sNpIrSlFMAxTVcnbwbctw==","_npmVersion":"10.8.2","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.19.1","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.3","@xcelsior/email":"1.0.2","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.4","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.5","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.13_1763411271120_0.019790717620095766","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@xcelsior/mfa-api","version":"1.0.14","_id":"@xcelsior/mfa-api@1.0.14","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"a48b827cc3cbb13351d10a14676f22629f1c2829","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.14.tgz","fileCount":20,"integrity":"sha512-PZHLXKYKQ9zP6SpYNX1YndpeSEHOZFL/q1OfhqgNzXnYuSjtDmhpM/vHRAdIVxrGllawQ7+u9dblZMtTkg/9WA==","signatures":[{"sig":"MEUCIQCJIA4+x07tSX6MBVY1NSLvrMkXfkTYFRcROEyKZEPBeAIgHDFXyTajuY1nqX18gtf7PT8nLzS0jMqHp33tMSHmT5E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53958},"type":"module","_from":"file:xcelsior-mfa-api-1.0.14.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/40/csghs6h51qn368khq8ql5kjm0000gn/T/2698f4bf21e025f50601fe0f98a397d5/xcelsior-mfa-api-1.0.14.tgz","_integrity":"sha512-PZHLXKYKQ9zP6SpYNX1YndpeSEHOZFL/q1OfhqgNzXnYuSjtDmhpM/vHRAdIVxrGllawQ7+u9dblZMtTkg/9WA==","_npmVersion":"10.8.2","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.19.1","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.3","@xcelsior/email":"1.0.2","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.4","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.5","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.14_1767438727753_0.6470703397593296","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"@xcelsior/mfa-api","version":"1.0.15","_id":"@xcelsior/mfa-api@1.0.15","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"5e532f7f2b809e4f03c6c314d6125ad2ce271e3d","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.15.tgz","fileCount":20,"integrity":"sha512-OIvEtBfAAjTchlp5VDD7MGGA0SuJVJtGNZH/R6ORC/UuwnnZSax1HtN2chVqdBcwFvzdPFe6RYeQ19+VAun0Rg==","signatures":[{"sig":"MEUCIHlqVN8MX5gTDvQHrML1dsAWR7dJoFdIBl01AxynU6qtAiEAvGB02fJR3BhbQTSPIvun7zCkFmHnXPt8aYfhCZjVjy4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54336},"type":"module","_from":"file:xcelsior-mfa-api-1.0.15.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/40/csghs6h51qn368khq8ql5kjm0000gn/T/980f11c8a64890c85b50afbb10c83874/xcelsior-mfa-api-1.0.15.tgz","_integrity":"sha512-OIvEtBfAAjTchlp5VDD7MGGA0SuJVJtGNZH/R6ORC/UuwnnZSax1HtN2chVqdBcwFvzdPFe6RYeQ19+VAun0Rg==","_npmVersion":"10.8.2","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.19.1","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.3","@xcelsior/email":"1.0.2","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.4","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.5","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.15_1767439184843_0.4362823082483256","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"@xcelsior/mfa-api","version":"1.0.16","_id":"@xcelsior/mfa-api@1.0.16","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"e951167c7752eebfc18878eba7fded20ec6bc169","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.16.tgz","fileCount":20,"integrity":"sha512-EyITAA2BYP8z9ewGNfRI4rRm1GVDiNj/Mzot93v7T62htHiMK1I3MiThcg9eOPcpvuBZNp8FNPc5jYwvVHc5DQ==","signatures":[{"sig":"MEUCICPlohWMGlYTjdBCqlyQgE/oktf5ZgAL/h9Tw2YczUtFAiEAxuvgtmcfbFAwSDQ/Y9NuX0QlhjXBAOd/TeZZssJYGx4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54643},"type":"module","_from":"file:xcelsior-mfa-api-1.0.16.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/40/csghs6h51qn368khq8ql5kjm0000gn/T/d911aa7737e215fee5bb1f1c92f01374/xcelsior-mfa-api-1.0.16.tgz","_integrity":"sha512-EyITAA2BYP8z9ewGNfRI4rRm1GVDiNj/Mzot93v7T62htHiMK1I3MiThcg9eOPcpvuBZNp8FNPc5jYwvVHc5DQ==","_npmVersion":"10.8.2","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.19.1","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.3","@xcelsior/email":"1.0.2","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.4","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.5","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.16_1767478145638_0.6139363072431698","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"@xcelsior/mfa-api","version":"1.0.17","_id":"@xcelsior/mfa-api@1.0.17","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"556a07a0249a1bb4b0fe1a7f06b5916e4f6b31c9","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.17.tgz","fileCount":20,"integrity":"sha512-LatVeIPxFd4Qrod/Am4ISNEW3PVzx7FLqYtqsMvZPB4/jnU7lKIwe7QV+sB/YvNY7eTI/OkeS8seesKY6619Qg==","signatures":[{"sig":"MEUCIHiRTsiY8f1X/tyNHtqmDPjTw2GsF4Xj3p3tId2DWNLSAiEA8tLV124PJJEBMyHNmRuscR6Qod947LMczWz2bFn8MjU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54669},"type":"module","_from":"file:xcelsior-mfa-api-1.0.17.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/40/csghs6h51qn368khq8ql5kjm0000gn/T/5ecd2c0d513b96a8a1877ad26214d59c/xcelsior-mfa-api-1.0.17.tgz","_integrity":"sha512-LatVeIPxFd4Qrod/Am4ISNEW3PVzx7FLqYtqsMvZPB4/jnU7lKIwe7QV+sB/YvNY7eTI/OkeS8seesKY6619Qg==","_npmVersion":"10.8.2","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.19.1","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.4","@xcelsior/email":"1.0.2","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.4","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.5","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.17_1768260295611_0.6536036852391409","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"@xcelsior/mfa-api","version":"1.0.18","_id":"@xcelsior/mfa-api@1.0.18","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"1aac268f036d067ca1d255db399d6cc6913280ae","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.18.tgz","fileCount":20,"integrity":"sha512-T0o5+HAAlPzGKr3Z2bT5FLaMc54ivbfGkFURl3/VwtMEYMBWYDbRiHIiuApc0kZ8wfIknR6d5ZDFmH9IR+LDpQ==","signatures":[{"sig":"MEQCIB4ICLEr+dKN6iisyO4i9wC1ZDqGWUkCKIhw5aQcTFCmAiBm3PmjuNyRvz1GObAi4aIh4DTG8xiL9W9Qq465RXOOQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54669},"type":"module","_from":"file:xcelsior-mfa-api-1.0.18.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/40/csghs6h51qn368khq8ql5kjm0000gn/T/7814beca0c8b03a9c0e5e76b6d4db734/xcelsior-mfa-api-1.0.18.tgz","_integrity":"sha512-T0o5+HAAlPzGKr3Z2bT5FLaMc54ivbfGkFURl3/VwtMEYMBWYDbRiHIiuApc0kZ8wfIknR6d5ZDFmH9IR+LDpQ==","_npmVersion":"10.8.2","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.19.1","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.5","@xcelsior/email":"1.0.2","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.4","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.5","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.18_1768267425800_0.09937977792927555","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"@xcelsior/mfa-api","version":"1.0.19","_id":"@xcelsior/mfa-api@1.0.19","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"e0e66170cfb3df1a47d6d0a854eaa813c6a9074a","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.19.tgz","fileCount":20,"integrity":"sha512-AeE4RKhn5DSrqXqYZAs7z+Mum2hC9FwSfIaac4fTOlsvrCCuuSu835LCNnVf8onBNn0J74HlRN4ZPGDWY+kbIg==","signatures":[{"sig":"MEUCIHPpIjqjNAihj1j+omIYawdO+8RKzyDxCFXcD09FPvzHAiEA955azL7Scpk/CF8oXjpb1B15tIRmh7Q2KWxLk3iQ3g0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54683},"type":"module","_from":"file:xcelsior-mfa-api-1.0.19.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/40/csghs6h51qn368khq8ql5kjm0000gn/T/81353b632afb1a85f156ea614bb6375a/xcelsior-mfa-api-1.0.19.tgz","_integrity":"sha512-AeE4RKhn5DSrqXqYZAs7z+Mum2hC9FwSfIaac4fTOlsvrCCuuSu835LCNnVf8onBNn0J74HlRN4ZPGDWY+kbIg==","_npmVersion":"10.8.2","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.19.1","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.5","@xcelsior/email":"1.0.2","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.4","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.5","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.19_1768605283438_0.09225135841409071","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"@xcelsior/mfa-api","version":"1.0.20","_id":"@xcelsior/mfa-api@1.0.20","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"e73dd4b49399c1ed7623e7b56c23b0ec75706125","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.20.tgz","fileCount":20,"integrity":"sha512-/jbx9x/hZdYIi3boM1xa+b4NtSMGd0g7nlowwHeMItEEZw97rqzyrQjNKGPDhh1uIZHOx5qGLue5wYs235jC6A==","signatures":[{"sig":"MEQCIBx/Ukpueq9lfn58x84R6bzzf9/9giSvPkr/L3AFAmmAAiBVK5+ZTSDkhhyCMBplkEfLVmxhD45b5xgd1dVd/g79LA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54669},"type":"module","_from":"file:xcelsior-mfa-api-1.0.20.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/tmp/e5f7863d34b650923d51340d0fe39b87/xcelsior-mfa-api-1.0.20.tgz","_integrity":"sha512-/jbx9x/hZdYIi3boM1xa+b4NtSMGd0g7nlowwHeMItEEZw97rqzyrQjNKGPDhh1uIZHOx5qGLue5wYs235jC6A==","_npmVersion":"10.2.4","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.11.0","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.6","@xcelsior/email":"1.0.3","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.4","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.5","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.20_1769338330077_0.5075435987836938","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"@xcelsior/mfa-api","version":"1.0.21","_id":"@xcelsior/mfa-api@1.0.21","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"aa5e2a9cd2cbebfdf04a69a48e3bfdecd5a114bc","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.21.tgz","fileCount":20,"integrity":"sha512-vvCfokqG9sBD3PjtJ+EbJ7VGQGL/FTR40E7+2FSFfpYH6Z3cKaUs+JOnUndTc/FxvyXe/JUv2Aj9MxjaccLp2Q==","signatures":[{"sig":"MEQCIAEdwrMkJBRy8Kcw/KBRivAyeEqWmGf16WU/UZSuzQ7VAiAsokflbC7WEa1M4T0uZtk9CSTRc37r7IkkiXXv7CvlpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54669},"type":"module","_from":"file:xcelsior-mfa-api-1.0.21.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/tmp/f89be91c12ea1e8da30bf0c5efe3ffca/xcelsior-mfa-api-1.0.21.tgz","_integrity":"sha512-vvCfokqG9sBD3PjtJ+EbJ7VGQGL/FTR40E7+2FSFfpYH6Z3cKaUs+JOnUndTc/FxvyXe/JUv2Aj9MxjaccLp2Q==","_npmVersion":"10.2.4","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.11.0","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.6","@xcelsior/email":"1.0.3","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.4","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.5","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.21_1770167015037_0.48487816622259916","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"@xcelsior/mfa-api","version":"1.0.22","_id":"@xcelsior/mfa-api@1.0.22","maintainers":[{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"acf3db5b60a22299433bda48cd6fbf2d27bf6883","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.22.tgz","fileCount":20,"integrity":"sha512-ccoWrPBRzdVlUEyzcs4PEbE6NCqzr0u5vwDjGtYRbkSSiHwwMAj+WD0iUscyF52fTsgX9heq2rBATjq0iD2OUw==","signatures":[{"sig":"MEYCIQCI1FxVbHAoyJsBc39db61OXaLTkNuTqx2GE3JN8TH/MAIhALf4Ik1hLRQtLqe4rH38tjLycjOVKM7tb5aqXql8oByv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54669},"type":"module","_from":"file:xcelsior-mfa-api-1.0.22.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"vdtn359","email":"vdtn359@gmail.com"},"_resolved":"/private/var/folders/40/csghs6h51qn368khq8ql5kjm0000gn/T/c546fe189630fd0dada4bef630e454cd/xcelsior-mfa-api-1.0.22.tgz","_integrity":"sha512-ccoWrPBRzdVlUEyzcs4PEbE6NCqzr0u5vwDjGtYRbkSSiHwwMAj+WD0iUscyF52fTsgX9heq2rBATjq0iD2OUw==","_npmVersion":"10.8.2","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"20.19.1","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.6","@xcelsior/email":"1.0.4","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"1.0.4","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"1.0.5","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.22_1771470683286_0.7274280609406316","host":"s3://npm-registry-packages-npm-production"}},"1.0.23":{"name":"@xcelsior/mfa-api","version":"1.0.23","_id":"@xcelsior/mfa-api@1.0.23","maintainers":[{"name":"xcelsior_software","email":"admin@xcelsior.co"},{"name":"hoanghuy27297","email":"huy.hoang@xcelsior.co"},{"name":"vdtn359","email":"vdtn359@gmail.com"}],"dist":{"shasum":"be39245038f9898e87afd12b3bb29ff1748cb017","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.0.23.tgz","fileCount":20,"integrity":"sha512-J/6ijh34xkhWTf3yY/hwn515M81gzXpFozWMo+GLC1Nd6/rctrShUmkeXkajt1aUEmZXEl8exGoxL/ungleSSQ==","signatures":[{"sig":"MEUCIHSlNGTC0yIf0pU+EZl5V+o1bjwzD9g/wF2uHcz5RuDlAiEA9EdIJ4QEZtyOL208xnQdmCpU79tqoKrPKUOFAiaVTmI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54669},"type":"module","_from":"file:xcelsior-mfa-api-1.0.23.tgz","scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit"},"_npmUser":{"name":"xcelsior_software","email":"admin@xcelsior.co"},"_resolved":"/private/var/folders/ff/gzq_c0354y7d_dm5724d21sw0000gn/T/0d6b5f2ddc509a21384a0598a2523337/xcelsior-mfa-api-1.0.23.tgz","_integrity":"sha512-J/6ijh34xkhWTf3yY/hwn515M81gzXpFozWMo+GLC1Nd6/rctrShUmkeXkajt1aUEmZXEl8exGoxL/ungleSSQ==","_npmVersion":"11.12.1","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"sst":"^2.40.3","zod":"^3.22.4","dotenv":"^17.2.1","qrcode":"^1.5.3","speakeasy":"^2.0.0","constructs":"10.3.0","typescript":"^5.3.3","@types/node":"^20.11.16","aws-cdk-lib":"2.201.0","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.6","@xcelsior/email":"1.0.6","@tsconfig/node18":"^18.2.2","@types/speakeasy":"^2.0.10","@types/aws-lambda":"^8.10.152","@xcelsior/monitoring":"2.2.0","@aws-sdk/lib-dynamodb":"^3.888.0","@xcelsior/lambda-http":"2.2.0","@aws-sdk/client-dynamodb":"^3.888.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mfa-api_1.0.23_1779962602764_0.8256176272252884","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@xcelsior/mfa-api","version":"1.1.0","type":"module","dependencies":{"@aws-sdk/client-dynamodb":"^3.888.0","@aws-sdk/lib-dynamodb":"^3.888.0","sst":"^2.40.3","zod":"^3.22.4","speakeasy":"^2.0.0","qrcode":"^1.5.3","@types/aws-lambda":"^8.10.152","aws-cdk-lib":"2.201.0","constructs":"10.3.0","dotenv":"^17.2.1","typescript":"^5.3.3","@tsconfig/node18":"^18.2.2","@types/node":"^20.11.16","@types/speakeasy":"^2.0.10","@types/qrcode":"^1.5.5","@xcelsior/aws":"1.0.6","@xcelsior/lambda-http":"2.2.0","@xcelsior/monitoring":"2.2.0","@xcelsior/email":"1.0.6"},"scripts":{"dev":"sst dev --stage dev --mode basic","build":"sst build","deploy":"sst deploy","remove":"sst remove","console":"sst console","typecheck":"tsc --noEmit","test":"jest --passWithNoTests","lint":"biome check ."},"_id":"@xcelsior/mfa-api@1.1.0","description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","_integrity":"sha512-PDVQ47RkpBv5hxsbtLCAWUb9LXOXTvOWNAe8JCG2itBj5glq5xKzcCSqsOeoCEF9hX55ztdi3ocXubw5oLbrUg==","_resolved":"/private/var/folders/ff/gzq_c0354y7d_dm5724d21sw0000gn/T/67f8cfe693fb4cf3dc54978d89559309/xcelsior-mfa-api-1.1.0.tgz","_from":"file:xcelsior-mfa-api-1.1.0.tgz","_nodeVersion":"26.7.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-PDVQ47RkpBv5hxsbtLCAWUb9LXOXTvOWNAe8JCG2itBj5glq5xKzcCSqsOeoCEF9hX55ztdi3ocXubw5oLbrUg==","shasum":"6bf33391e90df2ff0675689c3bdb23fb9f0e53ed","tarball":"https://registry.npmjs.org/@xcelsior/mfa-api/-/mfa-api-1.1.0.tgz","fileCount":23,"unpackedSize":86924,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDpYEq2Lce2qGpaYQeb0RfUo03vKAfvYemBFc2pQNQZfAiEA+9+qBAdM/PNyXOgvnzWqYgC8Qctaw9+lOhGdUOK7vxk="}]},"_npmUser":{"name":"xcelsior_software","email":"admin@xcelsior.co"},"directories":{},"maintainers":[{"name":"xcelsior_software","email":"admin@xcelsior.co"},{"name":"hoanghuy27297","email":"huy.hoang@xcelsior.co"},{"name":"vdtn359","email":"vdtn359@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mfa-api_1.1.0_1788503993708_0.4894793804056319"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-19T04:14:20.835Z","modified":"2026-09-04T06:39:54.029Z","1.0.0":"2025-09-19T04:14:21.087Z","1.0.1":"2025-09-20T03:57:58.705Z","1.0.2":"2025-09-20T12:40:07.767Z","1.0.3":"2025-09-21T13:22:46.508Z","1.0.4":"2025-09-21T14:09:37.596Z","1.0.5":"2025-09-21T16:02:20.360Z","1.0.6":"2025-09-21T16:11:59.875Z","1.0.7":"2025-10-21T01:25:00.021Z","1.0.8":"2025-10-22T02:53:29.576Z","1.0.9":"2025-10-22T02:57:03.163Z","1.0.10":"2025-10-22T09:34:08.316Z","1.0.11":"2025-11-17T20:21:57.590Z","1.0.12":"2025-11-17T20:24:38.789Z","1.0.13":"2025-11-17T20:27:51.309Z","1.0.14":"2026-01-03T11:12:07.902Z","1.0.15":"2026-01-03T11:19:44.994Z","1.0.16":"2026-01-03T22:09:05.779Z","1.0.17":"2026-01-12T23:24:55.754Z","1.0.18":"2026-01-13T01:23:45.947Z","1.0.19":"2026-01-16T23:14:43.598Z","1.0.20":"2026-01-25T10:52:10.213Z","1.0.21":"2026-02-04T01:03:35.200Z","1.0.22":"2026-02-19T03:11:23.458Z","1.0.23":"2026-05-28T10:03:22.929Z","1.1.0":"2026-09-04T06:39:53.830Z"},"description":"A serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.","maintainers":[{"name":"xcelsior_software","email":"admin@xcelsior.co"},{"name":"hoanghuy27297","email":"huy.hoang@xcelsior.co"},{"name":"vdtn359","email":"vdtn359@gmail.com"}],"readme":"# MFA API Service\n\nA serverless Multi-Factor Authentication (MFA) service built with SST, supporting both app authenticator (TOTP) and email one-time password (OTP) methods.\n\n## Features\n\n- **App Authenticator**: TOTP-based MFA using apps like Google Authenticator, Authy, etc.\n- **Email OTP**: One-time password sent via email\n- **API Key Authentication**: Secure API access with API key validation\n- **Device Management**: Create, list, update, and delete MFA devices\n- **Challenge-Response Flow**: Secure verification process with expiration and attempt limits\n- **AWS DynamoDB**: Scalable data storage with automatic TTL for expired challenges\n- **Email Integration**: Uses the @xcelsior/email service for sending OTP codes\n\n## API Endpoints\n\nAll API requests require authentication using an API key in the `X-API-Key` header.\n\n### Device Management\n\n- `POST /api/mfa/devices` - Create a new MFA device\n- `GET /api/mfa/devices/{userId}` - List all devices for a user\n- `PUT /api/mfa/devices/{deviceId}` - Update device settings\n- `DELETE /api/mfa/devices/{deviceId}` - Delete a device\n- `POST /api/mfa/devices/{deviceId}/verify-setup` - Verify device setup\n\n### Challenge & Verification\n\n- `POST /api/mfa/challenges` - Create a new MFA challenge\n- `POST /api/mfa/challenges/{challengeId}/verify` - Verify a challenge with code\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 18+\n- AWS CLI configured\n- SST CLI installed\n\n### Installation\n\n1. Install dependencies:\n```bash\nnpm install\n```\n\n2. Start development server:\n```bash\nnpm run dev\n```\n\n3. Deploy to AWS:\n```bash\nnpm run deploy\n```\n\n## Usage Examples\n\n### 1. Create App Authenticator Device\n\n```bash\ncurl -X POST https://api.example.com/api/mfa/devices \\\n  -H \"X-API-Key: your-api-key\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"userId\": \"user123\",\n    \"type\": \"app\",\n    \"name\": \"My Phone Authenticator\"\n  }'\n```\n\nResponse includes QR code and secret for setup:\n```json\n{\n  \"data\": {\n    \"deviceId\": \"device-uuid\",\n    \"qrCodeUrl\": \"data:image/png;base64,...\",\n    \"secret\": \"JBSWY3DPEHPK3PXP\"\n  }\n}\n```\n\n### 2. Create Email OTP Device\n\n```bash\ncurl -X POST https://api.example.com/api/mfa/devices \\\n  -H \"X-API-Key: your-api-key\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"userId\": \"user123\",\n    \"type\": \"email\",\n    \"name\": \"Work Email\",\n    \"email\": \"user@example.com\"\n  }'\n```\n\n### 3. Verify Device Setup\n\n```bash\ncurl -X POST https://api.example.com/api/mfa/devices/device-uuid/verify-setup \\\n  -H \"X-API-Key: your-api-key\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"code\": \"123456\"\n  }'\n```\n\n### 4. Create Challenge\n\n```bash\ncurl -X POST https://api.example.com/api/mfa/challenges \\\n  -H \"X-API-Key: your-api-key\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"userId\": \"user123\",\n    \"deviceId\": \"device-uuid\"\n  }'\n```\n\n### 5. Verify Challenge\n\n```bash\ncurl -X POST https://api.example.com/api/mfa/challenges/challenge-uuid/verify \\\n  -H \"X-API-Key: your-api-key\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"code\": \"123456\"\n  }'\n```\n\n## Configuration\n\n### Environment Variables\n\nThe service uses the following environment variables:\n\n- `POWERTOOLS_SERVICE_NAME`: Service name for logging\n- `POWERTOOLS_METRICS_NAMESPACE`: Metrics namespace\n- `POWERTOOLS_LOGGER_LOG_LEVEL`: Log level (INFO, DEBUG, etc.)\n- `AWS_REGION`: AWS region for deployment\n\n### Rate Limits\n\n- **Device operations**: 100 requests per hour per API key\n- **Challenge operations**: 500 requests per hour per API key\n- **Verification attempts**: 3 attempts per challenge\n\n## Security Features\n\n- **API Key Authentication**: All endpoints require valid API key\n- **Challenge Expiration**: Challenges expire after 5 minutes\n- **Attempt Limiting**: Maximum 3 verification attempts per challenge\n- **Device Activation**: Devices must be verified before use\n- **Automatic Cleanup**: Expired challenges are automatically removed via DynamoDB TTL\n\n## Development\n\n### Scripts\n\n- `npm run dev` - Start development server\n- `npm run build` - Build the project\n- `npm run deploy` - Deploy to AWS\n- `npm run remove` - Remove from AWS\n- `npm run console` - Open SST console\n- `npm run typecheck` - Run TypeScript checks\n\n### Project Structure\n\n```\nservices/mfa-api/\n├── packages/\n│   └── functions/\n│       ├── mfa/\n│       │   ├── createDevice.ts\n│       │   ├── verifySetup.ts\n│       │   ├── listDevices.ts\n│       │   ├── updateDevice.ts\n│       │   ├── deleteDevice.ts\n│       │   ├── createChallenge.ts\n│       │   └── verifyChallenge.ts\n│       ├── middleware/\n│       │   └── apiKeyAuth.ts\n│       ├── config.ts\n│       └── types.ts\n├── stacks/\n│   └── MfaStack.ts\n├── docs/\n├── package.json\n├── sst.config.ts\n└── tsconfig.json\n```\n\n## Dependencies\n\nThe service uses the following key dependencies:\n\n- **SST**: Serverless framework\n- **AWS SDK**: DynamoDB operations\n- **@xcelsior/email**: Email service for OTP delivery\n- **@xcelsior/lambda-http**: HTTP utilities and middleware\n- **speakeasy**: TOTP generation and verification\n- **qrcode**: QR code generation for app authenticator setup\n- **zod**: Runtime type validation\n\n## Monitoring\n\nThe service includes comprehensive logging and tracing:\n\n- AWS X-Ray tracing for request tracking\n- CloudWatch metrics and logs\n- Structured logging with correlation IDs\n- Error tracking and alerting\n\n## License\n\nThis project is part of the Excelsior packages monorepo.\n","readmeFilename":"README.md"}