{"_id":"@techres/authenticate-lib","_rev":"29-e14e82c69ff6092802e97958cf58d888","name":"@techres/authenticate-lib","dist-tags":{"latest":"1.0.28"},"versions":{"1.0.0":{"name":"@techres/authenticate-lib","version":"1.0.0","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.0","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"b3547c9f60c78fb40797e1a9406273c61f4c6679","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.0.tgz","fileCount":52,"integrity":"sha512-9q4XPh+ZCyEKcQH8AqL9Tw7Aog1QQMPq8Kb4vN1bW6mvf5iM2ZuAaOxOUfYKX8yuR0qmcrfrw+6YtzPfdIuZ1g==","signatures":[{"sig":"MEYCIQD/UI4Zo0jZbEM2iYbXaiBDRBqU851Et77+dMRUGEWYzwIhAJ82kHGP7L7sOvBZpBH4jwFxzA6onqXkf/sLpL+5f1ET","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166864},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"79e5e245e4aa1e2e4365c8f158c8bb98b0ce1c12","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.0_1755058586603_0.3449646980728285","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@techres/authenticate-lib","version":"1.0.1","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.1","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"a5d8a7559c150620cc0930128f54911ce1ab03ee","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.1.tgz","fileCount":52,"integrity":"sha512-0PredIiRjRQsJyXGO7u51N9z4NmUKdrdYMqIYlXSrAcxUhXDBmZvjdelhUr1MgX3fIOzZ/U/3Nro0DcQTVzJlQ==","signatures":[{"sig":"MEYCIQDxwc2hEetcK0P/Zt8gCLNILjH10fQs1LOSIijf8a0ueAIhAKwFfaVS0Cs1KXlvRhWhBFNw8DAAUbYBl5ktR0JD8d0y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172073},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"bb764497a2c390acbe954805b61d9e000317c763","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.1_1755243602864_0.3912466514315136","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@techres/authenticate-lib","version":"1.0.2","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.2","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"dffd6750d3f851732c8b5c2b10d88a1350bdc3ed","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.2.tgz","fileCount":52,"integrity":"sha512-It5skIfNK7ZTNUKQeX+4nK9YCIozVdcge9izN5a3MFMi+OUMD7HyEziEGXnHH9GZ8/wcGySuSO16FlnZF8QiDg==","signatures":[{"sig":"MEQCIGbI4HCzz87GA8jM+oalYjuwjLOEv6m/pQpaVGocNmtMAiA217/K6tY3MGH0lhzAb96fN8MzRLZiOpExpbkAHlBSFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186118},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5f4746f016dec4f1d8af1e9d90fd3ad55bb9a321","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.2_1755249700003_0.21779283159804952","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@techres/authenticate-lib","version":"1.0.3","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.3","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"ecbdbac048f5efeacb962f4b44cb1de598ca3ad0","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.3.tgz","fileCount":52,"integrity":"sha512-gGrNiDqRpVSkr9sz66G64sJFmySTQTj/ZurPinEsvF0NVMOqvzmSDJ+S2OYHbZwqJG+MJMEfgtngTiKYj/5csA==","signatures":[{"sig":"MEUCIFF0sEENZmq7ei12gjMR8HohvaMUWUKPmYGxOk3xUhRuAiEA76JRtRwm6lM0p1YGunDd8L7Pl6cFDEpvTb99bklar+w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186356},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5b5dbba8c0bb0fbfdb3c020158f06be40e474e68","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.3_1755486030423_0.6510341690103574","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@techres/authenticate-lib","version":"1.0.4","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.4","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"ab426140d16b3591f34e455891970234d533ae9b","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.4.tgz","fileCount":56,"integrity":"sha512-788c1jtwYbVGxWwQsoN8sO8/5JFaKuGAPRK6FpDVEbGScoQHGFl3F1oqqt62wByvsNScr7S9ZOjE9UTEVNZKHA==","signatures":[{"sig":"MEUCIFJW/YhDJ183sa0XlnU62ESYpQDHlX9OTic9dvVe9ebMAiEA29h0Gn0Yl5oQrf31H7Swl56OmX9wOsqRyMjALa98EUg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":188149},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5b5dbba8c0bb0fbfdb3c020158f06be40e474e68","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.4_1755487377136_0.2588596624259649","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@techres/authenticate-lib","version":"1.0.5","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.5","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"3fc3e3901365cbfde0e6f4b1cb60825148762481","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.5.tgz","fileCount":54,"integrity":"sha512-1ABk25FypLdkA/0J3MdWPceOfNJ2MePSN7lJcfPLLfqsSQkrqaJPzjcAHGT4AHyL6PVtSlHaYYndE4Kx71Z0SQ==","signatures":[{"sig":"MEQCIBWldshLycy7BmDruEcrSw87udeGfvyD21KqscvkhWlKAiA0Vk82vyPYgs6YWsyLzn+DLu0tzrxOa/GfdIbfIKnqEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165208},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5b5dbba8c0bb0fbfdb3c020158f06be40e474e68","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.5_1755507333658_0.8206195837178589","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@techres/authenticate-lib","version":"1.0.6","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.6","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"c45638b441581479542c19f6ad5521931521a041","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.6.tgz","fileCount":54,"integrity":"sha512-PW0fdQTHRBeeVNDqku8fMn0PtEXZqKg/Sx6Vwd+AmvruWr3suXBOJqJaSxvIjP8bL6WorPY4dGmrufedNzk13g==","signatures":[{"sig":"MEUCICt3134taRmq2hLdAeOyn2912geO+K10V3KTGoi7EHqGAiEA8aJleDtsfZmSRIIvgTbVki9OJZx6HSQxfMXPXLXdhjE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165464},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5b5dbba8c0bb0fbfdb3c020158f06be40e474e68","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.6_1755508061970_0.1094662749542612","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@techres/authenticate-lib","version":"1.0.7","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.7","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"469aea120a69fcb2c2405679cf85bce41a7979ea","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.7.tgz","fileCount":58,"integrity":"sha512-0G9o4X06rexmhEe1Ploa31alapkscokd3LJSLOrczN8cYPW2kaUiAiXL+8MNCsVUxnH2pvq/iV4oKO4odB9Ozw==","signatures":[{"sig":"MEUCIQCWPT21I1kL+y3fdJWlTwpijY2a6CvOvh4pALgQXXQYIQIgOgWcMNmSe2kWM51UfxD+FrqQ7SZZ2bEd3VrZykzoZjc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170394},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5b5dbba8c0bb0fbfdb3c020158f06be40e474e68","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.7_1755509207212_0.5075858490759277","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@techres/authenticate-lib","version":"1.0.8","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.8","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"513b4500d4b2686478ed99401cc81d1903f81fc4","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.8.tgz","fileCount":58,"integrity":"sha512-/JUnFX4ccZnnaZJiBxEKncvXBIeB+hxIz8tNDjpGsLbN1/icjYsFCpdv//AWrnuXeXEX/XhgUA/QfKCcckG8ew==","signatures":[{"sig":"MEQCIESPhnOhZ9qrYL56Km5TfJ42qSzHiF3V7SNSnsvJeQfmAiAyjF+Uv70Ti/3bOPkW2tyoxofgGg5syFFdosbsrktLUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170605},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5b5dbba8c0bb0fbfdb3c020158f06be40e474e68","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.8_1755509775871_0.5609181907961505","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@techres/authenticate-lib","version":"1.0.9","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.9","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"811413dac3f6ae239480e57486831c29954ab0af","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.9.tgz","fileCount":58,"integrity":"sha512-RPsKC+BF0sdUv0+7On6TZ84zPoxoJw0KruBWc20Y6ZkLDrkiO8Q9qTH2ilbW6IkCPbPC/oT9wLbnGIKRUps2cA==","signatures":[{"sig":"MEUCIQDgC+7gJ4gtr8sy47zouyzpLO/GuI5vPYg3iFbUGa8+VQIgDrXGJ/HTVFl4pXPdJWbXyX9oIEQN+KK6OInkK1baSko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170605},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5b5dbba8c0bb0fbfdb3c020158f06be40e474e68","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.9_1755512347097_0.6040546298145273","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@techres/authenticate-lib","version":"1.0.10","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.10","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"8de91d310514c9575e8f9fb1f596e0a9f1a6dfe2","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.10.tgz","fileCount":58,"integrity":"sha512-j5HJ/+jLycM5kEtxctmtq2gWj+K8ahxLMaInFYyYTKi9Gv4b2zbDFiPRNtvwZ2Qd2bzTWASOuxRQcwW0A75v7A==","signatures":[{"sig":"MEUCIQCW0sF+TtQFa6eYegULADrc88LArG3CkQYhxGJ9tCuxLgIgWFyeqhP311m+4FxJzryAMvWeZN9z+/++VP9SryXVhjQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170748},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5b5dbba8c0bb0fbfdb3c020158f06be40e474e68","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.10_1755512825195_0.5533614940850278","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@techres/authenticate-lib","version":"1.0.11","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.11","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"d63a86006a0782e2c7c55ff2bea77426cea87436","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.11.tgz","fileCount":58,"integrity":"sha512-RWb82MUHAhta4wc06+rB36Kp7s9yEW2csSQGCEoYg3xd8MBBbGWDsh0F/qn+/3VFTP/V5ujLX0losahbyikMkg==","signatures":[{"sig":"MEUCIQDmcJP59XUbVJ0bmseMbYzkynZz6DyubUa7pWjELOVfqQIgUqe1wV2zP8Vz3akRe7n2ORq4M8HKeBGc7IH5GQrJphw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170714},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5b5dbba8c0bb0fbfdb3c020158f06be40e474e68","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.11_1755513178514_0.8027696530673767","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@techres/authenticate-lib","version":"1.0.12","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.12","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"25b6f1ca6fd32ac1c601b8dd3fd6e4cd55bc186f","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.12.tgz","fileCount":58,"integrity":"sha512-NPSHW4iUvTwJ5Zcnsiu0lLy6btkDBsUcEXYt2lUPU8Er3N83bUM3q1NGSl2CkRcf4MUnS7KOt3fjpOEIVdJfVA==","signatures":[{"sig":"MEYCIQCICSs6Vm7zzOAmSNYtHdI4ES0FP0tZBMeJ0UsGg0YMawIhAItGR7DwS0gqIejULz+RgaTQzMYKXA9gCdqfC6bjArCF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171043},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5b5dbba8c0bb0fbfdb3c020158f06be40e474e68","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.12_1755513355745_0.7550657194573052","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@techres/authenticate-lib","version":"1.0.13","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.13","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"559fe66603b808be8b3a3bad537d67018b4dd9f4","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.13.tgz","fileCount":58,"integrity":"sha512-mfCpc51geeYisacTUqPwxwcdDminsqV/LAvq7kUVfmLErnuL79aIQ3MqC3Dp3kLW601ETB06AM7PsDDbbz/IVQ==","signatures":[{"sig":"MEYCIQDermWXqrdAgNv2f1JDFAzEg0ZbojJ7jYw3LqyZEv3DuwIhAMjpVaRwVKnIXkBgNJRQrIZZuVI73yiLAbbxE2FfKies","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":169902},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5b5dbba8c0bb0fbfdb3c020158f06be40e474e68","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.13_1755513748921_0.759725143252937","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@techres/authenticate-lib","version":"1.0.14","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.14","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"9c17c983255ddba54b641f50578c8fe7f2c658e9","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.14.tgz","fileCount":62,"integrity":"sha512-d1Sk7sqblqgpP7WXQDAdIB+AWi1uCb0uFQSvQaGEbcujqPRsT69oMAjkTMyArRuzH9gMAdMsaM2+z3oVfWNhyA==","signatures":[{"sig":"MEYCIQC+dbT0EBXW8r6VNTWx3ZxDMW+zaw/zzVxWc77ARcOwLwIhAJPms7hIQ6pzj77rt+1qzqPFPbO+7K2GJJTDnHHHDNjH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189656},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5b5dbba8c0bb0fbfdb3c020158f06be40e474e68","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.14_1755749013021_0.4754352622933058","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"@techres/authenticate-lib","version":"1.0.15","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.15","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"074d6d6cff3c3b146a2ac9df0a11f870786b9f32","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.15.tgz","fileCount":62,"integrity":"sha512-ZcPrmdusebsXaortWTMg7M38ciEucTz2k99f6C/yCxTLf9GvUvCTpYY9dBcPrsxHV4sgTx2/draA9KXbqEO99g==","signatures":[{"sig":"MEUCIQDKOjsbKhbq4C5sQAuKQVoTBC/S3F8HFNdUrwhh7QkacwIgDRxz55EftuERhNrmnFROOxXjDHp/mSjnOYQdxPXDTrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":193930},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5b5dbba8c0bb0fbfdb3c020158f06be40e474e68","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.15_1755847195727_0.43301342622389316","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"@techres/authenticate-lib","version":"1.0.16","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.16","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"7ae4cc87cb885d79feeb80b6e49f84bb547c5f0e","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.16.tgz","fileCount":62,"integrity":"sha512-d7rRe7aKWpEf0O38xPvF1iRm9EMQ3010yAPH4O0C7vy6yaXLiKzfzBHmmuU5qY1vmuazghKf/4J7Q1AUIDpI5A==","signatures":[{"sig":"MEUCIFxBMAIcN+NqxuzXLR62WGz9BE2l9GgP91tWvbcdrzvSAiEA1uBZaBKjJXDf1v9UWcjE/F/yp1nEYuocss96IJW/W2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194562},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5b5dbba8c0bb0fbfdb3c020158f06be40e474e68","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.16_1755855226419_0.7303565899789441","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"@techres/authenticate-lib","version":"1.0.17","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.17","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"b8edabf9045f1a09a415e5c16163d3451ab8337c","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.17.tgz","fileCount":62,"integrity":"sha512-m3i613sMnXm9AnFuHZ3fBjDufW2b/Q90yAZAFWbILIRKlZdVGJxA+4Adsw9O5FZXiq40RVAzUlF7m+BR6G6g5w==","signatures":[{"sig":"MEYCIQC3JTYDkTwDPTPeeviFvuApKAT/D4rYsgghM0VqZolz5wIhAJmIivD8+0sfjEUQmm8md+CQj/uud9EajRS+iIbWBPPA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194858},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5b5dbba8c0bb0fbfdb3c020158f06be40e474e68","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.17_1756108115923_0.8287383290799271","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"@techres/authenticate-lib","version":"1.0.18","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.18","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"db23f69606738b30cd0812090361ce7b25e8192d","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.18.tgz","fileCount":62,"integrity":"sha512-8M5UFggfh97UxNSXhEZU8WEGIqQGSej4QjHmaP+SUWdXQxiHNbih/HhBWzE94icGUYIOsyY7a29UGKlACNLpRg==","signatures":[{"sig":"MEUCIQDR3IBMKuNMcidemHz6EDq4/Homdy9dovI7T541YPqt5AIgEUph4vJPoadHGIlNs7RVhOAmZPBtZXWTCHYRLZVGld8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":209841},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5b5dbba8c0bb0fbfdb3c020158f06be40e474e68","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.18_1756109132644_0.6334897268093931","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"@techres/authenticate-lib","version":"1.0.19","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.19","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"7c96adf3de0617f44e036f903477fa6e40cd8a8c","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.19.tgz","fileCount":62,"integrity":"sha512-GPcXKvprJrRGzDAlMnsE24AOMDKYNC4aTFypi7ceSHYmyWEqVzIDupqtFSTh1c+HU8OTSNuv6jtdqRY0H3fOKg==","signatures":[{"sig":"MEUCIQCA++qC6OBVXm6/MNCOHkLQfhw5PuyAlj6Rc3H0oVCbDQIgXtYY+wb9W4/LZ6tACLtRnrNHt47f3iXAkbPzc81z37U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":212724},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5b5dbba8c0bb0fbfdb3c020158f06be40e474e68","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.19_1756111348667_0.7725417417163585","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"@techres/authenticate-lib","version":"1.0.20","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.20","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"ad648ed07da1c826810e8dc90e0ed956bea621c5","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.20.tgz","fileCount":62,"integrity":"sha512-k9iaBkksxY6klyy4ChiaBkUwsGY42eUq5M1E9E92ZmMvjQIDdfA/1Rf2q1SrlgiUYtmCk+ph/6ImAtJbjjguEQ==","signatures":[{"sig":"MEYCIQDxBzdrbJ01FXoPYG20pegFEPEwBfOWkPrmi543HCS3dwIhAPzlJ2ToN5nDtRDQ3ZeNLElJz0G/RygrmKZiE04rzba0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":212951},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"5b5dbba8c0bb0fbfdb3c020158f06be40e474e68","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.20_1756111614832_0.3042885975173657","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"@techres/authenticate-lib","version":"1.0.21","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.21","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"cf71406aeb93b76c1f504086420333a13f02984b","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.21.tgz","fileCount":62,"integrity":"sha512-m5X9mqhaCijEZOAp0P0U3rqg3l3uZLnuDSmVZ1Fyo5i2ZmihBmTcjGG6guB+LpwnOr5zb/7WbA5ZibDXdoxlpg==","signatures":[{"sig":"MEUCIC6jDqi9BvAzbrfJRqrQHaxklJwHeaxkN8WAN6vf2MbXAiEAnFpKWEgyjJdWkbwRsAFHpAJKQJmvo5xDyWBdfA6C4wE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":213697},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"02d9a999c1a45394186124517b21be02586c56a0","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.21_1756118541678_0.5645857364500884","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"@techres/authenticate-lib","version":"1.0.22","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.22","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"ebd4cd1722bfbdf6a62925c01a7f99485b0812ec","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.22.tgz","fileCount":62,"integrity":"sha512-8T5aVGxFYWQ6EUXaIbr4NeyzsQdSogVEnUssndF6Y3mqq06XpWDD85zrnQTH+r7OH1/8yHVBY5MoLD1DPR0LTQ==","signatures":[{"sig":"MEQCIEeggXq01PWVlCphZxhbTpPB/ymfJHj88CCqK9W8j1XjAiBGaHoQaRIcyaRbBXxC20H4kmHw6FA32xcYaFo9/VV71A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":214636},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"02d9a999c1a45394186124517b21be02586c56a0","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.22_1756276793625_0.5684603188824489","host":"s3://npm-registry-packages-npm-production"}},"1.0.23":{"name":"@techres/authenticate-lib","version":"1.0.23","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.23","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"d5e4da3cb213ee1b51a59498f147f8b26c856d3a","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.23.tgz","fileCount":62,"integrity":"sha512-XERGV6f8+nkrTyDauIxIsoOWcRx5BzY4dTu59/ki7enljGcloZJJuvrmd7KgoOKnq8zllNDDTui++iAxXldxKg==","signatures":[{"sig":"MEQCIHbiJH5IhW4Ro4deAZ67kJKR0WFWGstVYgCXRRFfXu6oAiAvIvhkWzqGCguMHNo+5ClnLlX4SGcopV149lHKUEOZmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":215051},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"02d9a999c1a45394186124517b21be02586c56a0","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.23_1756288802282_0.7081748679315736","host":"s3://npm-registry-packages-npm-production"}},"1.0.24":{"name":"@techres/authenticate-lib","version":"1.0.24","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.24","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"878732b8eff52219264bbf84b8e3713b3b22e212","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.24.tgz","fileCount":62,"integrity":"sha512-apPxmZcUUypArBRSBomVzRKruDTTaepRMk/Mqw0Po+WWNhkvaQs4iTVDISxUZ08lEju6IhUKzO8jj72dpxS1ZQ==","signatures":[{"sig":"MEUCIE9Xg1VVKAxcdCpcne45AfKl9Ox6Ht8LAyqSJkdLCQKFAiEAqtcS7kaQohGme7OGCaA+IVK40rq2oyUpIzZCQyriE1o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":215088},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"02d9a999c1a45394186124517b21be02586c56a0","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.24_1756288960710_0.5616935450032441","host":"s3://npm-registry-packages-npm-production"}},"1.0.25":{"name":"@techres/authenticate-lib","version":"1.0.25","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.25","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"d4782aa7736e11927b5dd27ef4bdd8b18e9dfbe7","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.25.tgz","fileCount":62,"integrity":"sha512-IXKiqKqaKhGbfCynmBWool32v152q0rA90L5/o+rTnTDSWQ9FfnF3PDoXc5uezncs3twkLxOj/IMXAZNvSQhXQ==","signatures":[{"sig":"MEQCIFtU3VXI7h3otHTT29Q3L9JSftAgoyyQLS2ckEXfand0AiAYrcBZUivyQuBMAKqGkp2a7AvxvaEcubLNO0CjwtkFqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":214673},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"02d9a999c1a45394186124517b21be02586c56a0","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"10.9.2","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.17.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.25_1756289063855_0.7780221737032516","host":"s3://npm-registry-packages-npm-production"}},"1.0.26":{"name":"@techres/authenticate-lib","version":"1.0.26","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.26","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"a3cf0a00c25e9d2766aa9e85b7cead2b5debd4cf","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.26.tgz","fileCount":62,"integrity":"sha512-mceQngaKt/GYZI2Fts+hkM3HnutDyeEDY5enUOK4UO5ufTpzGKAKhjLn6D9vpznpCtD5L2xMZ+OyDK7+BhBU8w==","signatures":[{"sig":"MEQCIEUIh7iVPbRb9oKEOqcUHal5ByDab0vVIpqYhC6L2boLAiBYdc+DzANDMuEFtYsrhwsYJWnlMaLKbUFE8R144SdWxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216392},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"094c08394b094bf56c6170902a9625f377938277","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"11.6.0","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.19.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.26_1758766536418_0.1977160250136527","host":"s3://npm-registry-packages-npm-production"}},"1.0.27":{"name":"@techres/authenticate-lib","version":"1.0.27","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","_id":"@techres/authenticate-lib@1.0.27","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"dist":{"shasum":"fb2c2fdea496de314feab3cd0b00482cfe8cd741","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.27.tgz","fileCount":62,"integrity":"sha512-u10r7YC1ifVes25KZ4k6kREKMdhtDdXCZA24HMERMpCBVSwYV8D+wjng7Nir0AA+hZTyH4heDTgvtfmplnzRPw==","signatures":[{"sig":"MEYCIQCKDtvpGzZ67aFRYqCg89h2PQhtPP5d3CdG7PorbqnP0QIhAOF4a4O8k3ErV++wHqLOZ6n2cBhB08gu0NkXM6aRtUjK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":217076},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"2b5ed7c481713cdb71260b99276b5e88fbb157b8","private":false,"scripts":{"build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"_npmVersion":"11.6.0","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","directories":{},"_nodeVersion":"22.19.0","dependencies":{"redis":"^4.6.12","@grpc/grpc-js":"^1.10.1","@bufbuild/protobuf":"^2.6.3","@grpc/proto-loader":"^0.7.13"},"_hasShrinkwrap":false,"devDependencies":{"ts-proto":"^2.7.5","ts-loader":"^9.5.2","typescript":"^5.5.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","@types/express":"^5.0.3"},"peerDependencies":{"express":"^4.18.0","@nestjs/core":"^9.0.0 || ^10.0.0","@nestjs/common":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/authenticate-lib_1.0.27_1759370822786_0.5777631274196096","host":"s3://npm-registry-packages-npm-production"}},"1.0.28":{"name":"@techres/authenticate-lib","version":"1.0.28","description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","main":"dist/index.js","types":"dist/index.d.ts","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"author":{"name":"TechRes"},"license":"MIT","scripts":{"build":"tsc","prepublishOnly":"npm run build"},"dependencies":{"@bufbuild/protobuf":"^2.6.3","@grpc/grpc-js":"^1.10.1","@grpc/proto-loader":"^0.7.13","redis":"^4.6.12"},"peerDependencies":{"@nestjs/common":"^9.0.0 || ^10.0.0","@nestjs/core":"^9.0.0 || ^10.0.0","express":"^4.18.0"},"devDependencies":{"@types/express":"^5.0.3","@types/node":"^24.2.0","protoc-gen-ts":"^0.8.7","ts-loader":"^9.5.2","ts-proto":"^2.7.5","typescript":"^5.5.3"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.js","types":"./dist/index.d.ts"}},"engines":{"node":">=16.0.0"},"private":false,"_id":"@techres/authenticate-lib@1.0.28","gitHead":"92fa12f6e0f570c17ee1f0819e878993dd9862f6","_nodeVersion":"22.19.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-SM8sQ4tOjkjI8AzhSx3cnqicLrfh8clQQHl/59L/HBOtX+S2cjqsQsac60MaSDhfnVNd1wmhaJ0/mIE5A1OagQ==","shasum":"3cc4ddf95bcf7465c18a5260b9ff833216ec34bf","tarball":"https://registry.npmjs.org/@techres/authenticate-lib/-/authenticate-lib-1.0.28.tgz","fileCount":62,"unpackedSize":216841,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDKnhsF0cX3iU50zq8Btty2OdxK7Z79AUB55lpk9tuiAgIhAJPa37GYz+fUEDFpm0NL0D5WXZC4NGo2UFuJj7jHRV/a"}]},"_npmUser":{"name":"techres","email":"long@overate-vntech.com"},"directories":{},"maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/authenticate-lib_1.0.28_1759390344600_0.11682400502664625"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-13T04:16:26.502Z","modified":"2025-10-02T07:32:24.985Z","1.0.0":"2025-08-13T04:16:26.813Z","1.0.1":"2025-08-15T07:40:03.087Z","1.0.2":"2025-08-15T09:21:40.216Z","1.0.3":"2025-08-18T03:00:30.607Z","1.0.4":"2025-08-18T03:22:57.362Z","1.0.5":"2025-08-18T08:55:33.860Z","1.0.6":"2025-08-18T09:07:42.156Z","1.0.7":"2025-08-18T09:26:47.403Z","1.0.8":"2025-08-18T09:36:16.072Z","1.0.9":"2025-08-18T10:19:07.315Z","1.0.10":"2025-08-18T10:27:05.392Z","1.0.11":"2025-08-18T10:32:58.698Z","1.0.12":"2025-08-18T10:35:55.926Z","1.0.13":"2025-08-18T10:42:29.140Z","1.0.14":"2025-08-21T04:03:33.223Z","1.0.15":"2025-08-22T07:19:55.911Z","1.0.16":"2025-08-22T09:33:46.623Z","1.0.17":"2025-08-25T07:48:36.107Z","1.0.18":"2025-08-25T08:05:32.813Z","1.0.19":"2025-08-25T08:42:28.867Z","1.0.20":"2025-08-25T08:46:55.024Z","1.0.21":"2025-08-25T10:42:21.875Z","1.0.22":"2025-08-27T06:39:53.827Z","1.0.23":"2025-08-27T10:00:02.477Z","1.0.24":"2025-08-27T10:02:40.912Z","1.0.25":"2025-08-27T10:04:24.036Z","1.0.26":"2025-09-25T02:15:36.593Z","1.0.27":"2025-10-02T02:07:02.964Z","1.0.28":"2025-10-02T07:32:24.826Z"},"author":{"name":"TechRes"},"license":"MIT","keywords":["oauth","authentication","redis","grpc","token","restaurant"],"description":"Token authentication package with Redis cache and gRPC fallback for restaurant services","maintainers":[{"name":"techres","email":"long@overate-vntech.com"}],"readme":"# @techres/authenticate-lib\n\nToken authentication package with Redis cache and gRPC fallback for restaurant services, with built-in NestJS integration.\n\n## Features\n\n- 🔐 **Token Authentication** - JWT token validation\n- ⚡ **Redis Cache** - Fast token caching with TTL\n- 🌐 **gRPC Fallback** - Reliable backend validation\n- 🛡️ **NestJS Guards** - Ready-to-use authentication guards\n- 🎯 **TypeScript** - Full type safety\n- 📝 **Annotations** - Declarative authentication\n- 🚀 **Performance** - Cache-first strategy\n- 🔒 **Platform Validation** - Restrict access by platform ID\n\n## Installation\n\n```bash\nnpm install @techres/authenticate-lib\n```\n\n## Quick Start\n\n### 1. Basic Usage (Stateless)\n\n```typescript\nimport { authenticateToken, AuthConfig } from '@techres/authenticate-lib';\n\nconst config: AuthConfig = {\n  redis: { host: 'localhost', port: 6379 },\n  grpc: { host: 'localhost', port: 50051 }\n};\n\nconst result = await authenticateToken('your-token', config);\nif (result.success) {\n  console.log('User:', result.data);\n}\n```\n\n### 2. NestJS Integration (Guards)\n\n```typescript\n// main.ts\nimport { AuthGuard, AuthConfig } from '@techres/authenticate-lib';\n\nconst globalAuthConfig: AuthConfig = {\n  redis: {\n    host: process.env.CONFIG_REDIS_OAUTH_HOST,\n    port: Number(process.env.CONFIG_REDIS_OAUTH_PORT),\n    password: process.env.CONFIG_REDIS_OAUTH_PASSWORD,\n    db: Number(process.env.CONFIG_REDIS_OAUTH_DB)\n  },\n  grpc: {\n    host: process.env.CONFIG_GRPC_JAVA_NET_TECHRES_OAUTH_HOST,\n    port: Number(process.env.CONFIG_GRPC_JAVA_NET_TECHRES_OAUTH_PORT)\n  },\n  logging: {\n    enabled: true,\n  }\n};\n\n// Optional: Restrict to specific platforms globally\nconst globalAuthConfig: AuthConfig = {\n  redis: { /* ... */ },\n  grpc: { /* ... */ },\n  allowedPlatforms: [1, 2] // Only allow platform 1 and 2\n};\n\nAuthGuard.setGlobalConfig(globalAuthConfig);\n\n// app.module.ts\nimport { AuthModule } from '@techres/authenticate-lib';\nimports: [AuthModule]\nproviders: [\n  {\n    provide: APP_GUARD,\n    useFactory: (reflector: Reflector) => new AuthGuard(reflector),\n    inject: [Reflector],\n  }\n]\n\n\n// controller.ts\nimport { Controller, Get, UseGuards } from '@nestjs/common';\nimport { AuthGuard, User, UserData, AllowedPlatforms, AllowedRoles } from '@techres/authenticate-lib';\n\n@Controller('api')\n@AllowedPlatforms([1, 2]) // Controller-level: allow platforms 1 and 2\n@UseGuards(AuthGuard)\nexport class ApiController {\n  @Get('profile')\n  getProfile(@User() user: UserData) {\n    return { user }; // Inherits controller-level platforms [1, 2]\n  }\n\n  @Get('admin-only')\n  @AllowedPlatforms([3]) // Method-level: override to platform 3 only\n  adminOnlyEndpoint(@User() user: UserData) {\n    return { message: 'Admin access granted' };\n  }\n\n  @Get('public')\n  @AllowedPlatforms([]) // Method-level: no platform restriction\n  publicEndpoint(@User() user: UserData) {\n    return { message: 'Public access' };\n  }\n}\n```\n\n### 3. NestJS Integration (Middleware)\n\n```typescript\n// main.ts\nimport { AuthMiddleware, AuthConfig } from '@techres/authenticate-lib';\n\nconst globalAuthConfig: AuthConfig = {\n  redis: {\n    host: process.env.CONFIG_REDIS_OAUTH_HOST,\n    port: Number(process.env.CONFIG_REDIS_OAUTH_PORT),\n    password: process.env.CONFIG_REDIS_OAUTH_PASSWORD,\n    db: Number(process.env.CONFIG_REDIS_OAUTH_DB)\n  },\n  grpc: {\n    host: process.env.CONFIG_GRPC_JAVA_NET_TECHRES_OAUTH_HOST,\n    port: Number(process.env.CONFIG_GRPC_JAVA_NET_TECHRES_OAUTH_PORT)\n  },\n  logging: {\n    enabled: true,\n  }\n};\n\nAuthMiddleware.setGlobalConfig(globalAuthConfig);\n\n// app.module.ts\nimport { Module, NestModule, MiddlewareConsumer } from '@nestjs/common';\nimport { AuthMiddleware } from '@techres/authenticate-lib';\n\n@Module({})\nexport class AppModule implements NestModule {\n  configure(consumer: MiddlewareConsumer) {\n    consumer\n      .apply(AuthMiddleware)\n      .forRoutes('api/*'); // Apply to all /api/* routes\n  }\n}\n\n// controller.ts\nimport { Controller, Get, Req } from '@nestjs/common';\nimport { MiddlewareAuthenticatedRequest, UserData } from '@techres/authenticate-lib';\n\n@Controller('api')\nexport class ApiController {\n  @Get('profile')\n  getProfile(@Req() req: MiddlewareAuthenticatedRequest) {\n    return { user: req.user };\n  }\n\n  @Get('user-info')\n  getUserInfo(@Req() req: MiddlewareAuthenticatedRequest) {\n    const user: UserData = req.user;\n    return {\n      userId: user.user_id,\n      username: user.username,\n      platform: user.platform\n    };\n  }\n}\n```\n\n## API Reference\n\n### Core Functions\n\n- `authenticateToken(token, config)` - Stateless authentication\n- `createAuthService(config)` - Create reusable service\n- `initializeGlobalAuthService(config)` - Global service setup\n- `authenticateTokenWithGlobalService(token)` - Use global service\n\n### NestJS Components\n\n#### Guards\n- `SimpleAuthGuard` - Basic authentication guard\n- `AuthGuard` - Advanced guard with per-route config\n\n#### Middleware  \n- `AuthMiddleware` - Authentication middleware for request pipeline\n\n#### Decorators\n- `@User()` - Extract user data decorator\n- `@SetAuthConfig()` - Per-route configuration\n- `@AllowedPlatforms()` - Platform restriction decorator (Guards only)\n- `@AllowedRoles()` - Role restriction decorator (Guards only)\n\n#### Error Handling\n- `AuthException` - Standard auth exceptions\n- `AuthExceptionFilter` - Error response formatter\n\n### Types\n\n- `AuthConfig` - Configuration interface\n- `AuthResult` - Authentication result\n- `UserData` - User information\n- `AuthErrorResponse` - Error response format\n- `AuthenticatedRequest` - Request with user data (Guards)\n- `MiddlewareAuthenticatedRequest` - Request with user data (Middleware)\n\n## Configuration\n\n```typescript\ninterface AuthConfig {\n  redis: {\n    host: string;\n    port: number;\n    password?: string;\n    db?: number;\n  };\n  grpc: {\n    host: string;\n    port: number;\n  };\n  logging?: {\n    enabled: boolean;\n    level: 'DEBUG' | 'INFO' | 'WARN' | 'ERROR';\n  };\n  allowedPlatforms?: number[]; // Optional: restrict to specific platforms\n}\n```\n\n## Platform Validation\n\nYou can restrict access to specific platforms using the `@AllowedPlatforms()` decorator:\n\n### Controller-Level Platform Restriction\n```typescript\n@Controller('api')\n@AllowedPlatforms([1, 2, 3]) // All routes in this controller allow platforms 1, 2, 3\n@UseGuards(AuthGuard)\nexport class ApiController {\n  @Get('general')\n  generalEndpoint(@User() user: UserData) {\n    // Accessible by platforms 1, 2, 3\n    return { platform: user.platform };\n  }\n}\n```\n\n### Method-Level Platform Restriction\n```typescript\n@Controller('api')\n@AllowedPlatforms([1, 2]) // Controller-level default\n@UseGuards(AuthGuard)\nexport class ApiController {\n  @Get('admin')\n  @AllowedPlatforms([3]) // Method-level overrides controller-level\n  adminEndpoint(@User() user: UserData) {\n    // Only accessible by platform 3\n    return { message: 'Admin access' };\n  }\n\n  @Get('public')\n  @AllowedPlatforms([]) // Empty array = no platform restriction\n  publicEndpoint(@User() user: UserData) {\n    // Accessible by any platform (overrides controller restriction)\n    return { message: 'Public access' };\n  }\n}\n```\n\n**Priority Order:**\n1. Method-level `@AllowedPlatforms()` (highest priority)\n2. Controller-level `@AllowedPlatforms()`\n3. No restriction (if no decorator is present)\n\nIf a token has a platform not in the allowed list, a `401 Unauthorized` error is returned.\n\n## Role Validation\n\nYou can restrict access to specific user roles using the `@AllowedRoles()` decorator:\n\n### Controller-Level Role Restriction\n```typescript\n@Controller('admin')\n@AllowedRoles(['admin', 'manager']) // All routes in this controller allow admin and manager\n@UseGuards(AuthGuard)\nexport class AdminController {\n  @Get('reports')\n  getReports(@User() user: UserData) {\n    // Accessible by admin and manager roles\n    return { user_role: user.user_role };\n  }\n}\n```\n\n### Method-Level Role Restriction\n```typescript\n@Controller('api')\n@AllowedRoles(['user', 'admin']) // Controller-level default\n@UseGuards(AuthGuard)\nexport class ApiController {\n  @Get('super-admin-only')\n  @AllowedRoles(['super_admin']) // Method-level overrides controller-level\n  superAdminEndpoint(@User() user: UserData) {\n    // Only accessible by super_admin role\n    return { message: 'Super admin access' };\n  }\n\n  @Get('public-data')\n  @AllowedRoles([]) // Empty array = no role restriction\n  publicData(@User() user: UserData) {\n    // Accessible by any role (overrides controller restriction)\n    return { message: 'Public data' };\n  }\n}\n```\n\n### Combining Platform and Role Validation\n```typescript\n@Controller('restricted')\n@AllowedPlatforms([1, 2]) // Only platforms 1 and 2\n@AllowedRoles(['admin']) // Only admin role\n@UseGuards(AuthGuard)\nexport class RestrictedController {\n  @Get('data')\n  getRestrictedData(@User() user: UserData) {\n    // User must have platform 1 or 2 AND admin role\n    return { \n      platform: user.platform, \n      role: user.user_role \n    };\n  }\n\n  @Get('manager-special')\n  @AllowedRoles(['manager']) // Override to manager role only\n  managerEndpoint(@User() user: UserData) {\n    // User must have platform 1 or 2 AND manager role\n    return { message: 'Manager access' };\n  }\n}\n```\n\n**Priority Order for Both Platform and Role:**\n1. Method-level decorators (highest priority)\n2. Controller-level decorators\n3. No restriction (if no decorator is present)\n\n**Validation Order:** Token authentication → Platform validation → Role validation → Success\n\nIf a token has a role not in the allowed list, a `401 Unauthorized` error is returned.\n\n**Note:** Platform and role validation are only available with Guards (`AuthGuard`, `SimpleAuthGuard`). The `AuthMiddleware` only performs token authentication and user data attachment.\n\n## Guards vs Middleware\n\n### When to use Guards\n- **Advanced Features**: Need platform/role validation using decorators\n- **Route-specific Config**: Different auth configs per route\n- **Granular Control**: Method-level access control\n- **Decorator Support**: Want to use `@AllowedPlatforms()`, `@AllowedRoles()`, `@SetAuthConfig()`\n\n```typescript\n// Use Guards for advanced authentication with decorators\n@Controller('admin')\n@AllowedRoles(['admin', 'manager'])\n@AllowedPlatforms([1, 2])\n@UseGuards(AuthGuard)\nexport class AdminController {\n  @Get('reports')\n  @AllowedRoles(['admin']) // Override to admin only\n  getReports(@User() user: UserData) {\n    return { data: 'sensitive admin data' };\n  }\n}\n```\n\n### When to use Middleware\n- **Simple Authentication**: Only need token validation + user data\n- **Global Application**: Apply to many routes at once\n- **Performance**: Runs earlier in request pipeline\n- **Simplicity**: No need for platform/role restrictions\n\n```typescript\n// Use Middleware for simple, global authentication\n@Module({})\nexport class AppModule implements NestModule {\n  configure(consumer: MiddlewareConsumer) {\n    consumer\n      .apply(AuthMiddleware)\n      .forRoutes('api/*'); // Apply to all API routes\n  }\n}\n\n@Controller('api')\nexport class ApiController {\n  @Get('data')\n  getData(@Req() req: MiddlewareAuthenticatedRequest) {\n    // User is automatically authenticated via middleware\n    return { user: req.user };\n  }\n}\n```\n\n### Comparison Table\n\n| Feature | AuthGuard | AuthMiddleware |\n|---------|-----------|----------------|\n| Token Authentication | ✅ | ✅ |\n| User Data Attachment | ✅ | ✅ |\n| Platform Validation | ✅ | ❌ |\n| Role Validation | ✅ | ❌ |\n| Route-specific Config | ✅ | ❌ |\n| Decorator Support | ✅ | ❌ |\n| Global Application | ✅ | ✅ |\n| Pipeline Position | Guard Phase | Middleware Phase |\n| Performance | Standard | Slightly faster |\n| Complexity | Higher | Lower |\n\n## Error Handling\n\nAll authentication errors return a standardized format:\n\n```json\n{\n  \"status\": 401,\n  \"message\": \"Token validation failed\",\n  \"data\": null\n}\n```\n\nPlatform and role validation errors return:\n```json\n{\n  \"status\": 401,\n  \"message\": \"Unauthorized\",\n  \"data\": null\n}\n```\n\n## License\n\nMIT","readmeFilename":"README.md"}