{"_id":"@linhnv1902/appcore-auth","_rev":"48-084e0a96077af2b875c47298fdfad369","name":"@linhnv1902/appcore-auth","dist-tags":{"latest":"1.0.35"},"versions":{"1.0.12":{"name":"@linhnv1902/appcore-auth","version":"1.0.12","keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"author":{"name":"AppCore Team"},"license":"MIT","_id":"@linhnv1902/appcore-auth@1.0.12","maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"dist":{"shasum":"cf2db1ad9abe176c5583cd045492481725aa888e","tarball":"https://registry.npmjs.org/@linhnv1902/appcore-auth/-/appcore-auth-1.0.12.tgz","fileCount":26,"integrity":"sha512-Jubxig+gIJ6Hh372wJL4LrptQrtiR/oAhVKpryXcu0aJiZTg5VU72EG5hKT0++MAK7D9xpFDfchlrtXJvdpR8A==","signatures":[{"sig":"MEYCIQCYHlkesIFo6nbPBGuCsaGLmF4senub0myeQ0wtzfNLdAIhAOtUxFmvje0d5sAYeM6oSO53Pht5a3HHj7sSxtEE5/G9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60339},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"835207bb323cd63cf5d012c2662af8d2b2b5d667","scripts":{"test":"echo \"No tests for compiled package\"","prepublishOnly":"echo \"This package contains only compiled files\""},"_npmUser":{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"},"repository":{"url":"git+https://github.com/nguyenvanlinh1902/appCore.git","type":"git"},"_npmVersion":"11.2.0","description":"Reusable authentication library for AppCore projects","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"qs":"^6.11.0","koa":"^2.14.2","axios":"^1.6.0","koa-router":"^12.0.0","firebase-admin":"^11.11.0"},"_hasShrinkwrap":false,"peerDependencies":{"firebase":"^10.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/appcore-auth_1.0.12_1759036108006_0.12865908277287352","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@linhnv1902/appcore-auth","version":"1.0.13","keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"author":{"name":"AppCore Team"},"license":"MIT","_id":"@linhnv1902/appcore-auth@1.0.13","maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"dist":{"shasum":"5ea18827e999a506992d930d31fa907c6e780674","tarball":"https://registry.npmjs.org/@linhnv1902/appcore-auth/-/appcore-auth-1.0.13.tgz","fileCount":26,"integrity":"sha512-hJHSybroC+jz4/KjziAjB9CiDH7GprfZdldodMT2PDDtX/qt8PaV+L34iDM3WsP1m8CXU1cH2Mp+DtSBKIBsWA==","signatures":[{"sig":"MEQCIDtN1nfxxn0aspiu7RdDQELAPCeAUdh2/IAxJqQg8mMbAiBDPg6+oe7LO1uVDJY5APRgyR7+WMProUkOef5wHQ/Sow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60339},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"20f2cc938052b3aea117e706c3c2163beea5245d","scripts":{"test":"echo \"No tests for compiled package\"","prepublishOnly":"echo \"This package contains only compiled files\""},"_npmUser":{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"},"repository":{"url":"git+https://github.com/nguyenvanlinh1902/appCore.git","type":"git"},"_npmVersion":"11.2.0","description":"Reusable authentication library for AppCore projects","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"qs":"^6.11.0","koa":"^2.14.2","axios":"^1.6.0","koa-router":"^12.0.0","firebase-admin":"^11.11.0"},"_hasShrinkwrap":false,"peerDependencies":{"firebase":"^10.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/appcore-auth_1.0.13_1759036159228_0.8610156139823477","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@linhnv1902/appcore-auth","version":"1.0.14","keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"author":{"name":"AppCore Team"},"license":"MIT","_id":"@linhnv1902/appcore-auth@1.0.14","maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"dist":{"shasum":"3ec77e3f7e0be319ac1af30c605884244c1c5356","tarball":"https://registry.npmjs.org/@linhnv1902/appcore-auth/-/appcore-auth-1.0.14.tgz","fileCount":2,"integrity":"sha512-MOaM2XAnmiBEALvB4VpDvIny+z+HxAsMwJEBaayVk3CzFpiLFoYIQueTo7IQ/Z0oRQmRqnTU0qk4vTwBeYzqIg==","signatures":[{"sig":"MEUCIH4+1aIjziYE68pdL7fYXbHap9SFZeRL6pgN+4BMwiwCAiEAhcDW5UUp6Xie0HQ+ddohHnuKvLFzXwpvx4qMs4gqKvs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8682},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"80fcd47cd634226e7e0a438fd8efff8b11cae807","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","watch":"tsc --watch","lint:fix":"eslint src --ext .ts --fix","publish:dist":"./scripts/publish-dist.sh","prepublishOnly":"echo \"This package contains only compiled files\"","publish:dist:major":"./scripts/publish-dist.sh major","publish:dist:minor":"./scripts/publish-dist.sh minor","publish:dist:patch":"./scripts/publish-dist.sh patch"},"_npmUser":{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"},"repository":{"url":"git+https://github.com/nguyenvanlinh1902/appCore.git","type":"git"},"_npmVersion":"11.2.0","description":"Reusable authentication library for AppCore projects","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"qs":"^6.11.0","koa":"^2.14.2","axios":"^1.6.0","koa-router":"^12.0.0","typescript":"^5.0.0","@types/glob":"^8.1.0","@types/node":"^20.0.0","firebase-admin":"^11.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"firebase":"^10.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/appcore-auth_1.0.14_1759038274918_0.9592627229606421","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"@linhnv1902/appcore-auth","version":"1.0.17","keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"author":{"name":"AppCore Team"},"license":"MIT","_id":"@linhnv1902/appcore-auth@1.0.17","maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"dist":{"shasum":"fd8002dc4f8fd9d0813a72e7d0dda2d2ba5cdf07","tarball":"https://registry.npmjs.org/@linhnv1902/appcore-auth/-/appcore-auth-1.0.17.tgz","fileCount":31,"integrity":"sha512-OfDOqtD1AsdhQuu89PbDxV83t4QCLwenm7zQ5zvOFOVRWL8dSR/zz+IYJY/kuu27TORcSjKk75lu8eXFAngGQA==","signatures":[{"sig":"MEUCIHw1j+Ae8S5aSE2hx22UUe1aESYvnzeDf5FbUEAksG4SAiEAhTFLGgmdSYhZOn7imKu4+fiJ+mC/oGrBDILFgwx+Q0k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72292},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=6.0.0","node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"9863fbe1441283b0a3b8373302188768b9be5734","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","watch":"tsc --watch","lint:fix":"eslint src --ext .ts --fix","publish:dist":"./scripts/publish-dist.sh","prepublishOnly":"npm run clean && npm run build","publish:dist:major":"./scripts/publish-dist.sh major","publish:dist:minor":"./scripts/publish-dist.sh minor","publish:dist:patch":"./scripts/publish-dist.sh patch"},"_npmUser":{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"},"repository":{"url":"git+https://github.com/nguyenvanlinh1902/appCore.git","type":"git"},"_npmVersion":"11.2.0","description":"Reusable authentication library for AppCore projects","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"qs":"^6.11.0","koa":"^2.14.2","axios":"^1.6.0","koa-router":"^12.0.0","typescript":"^5.0.0","@types/glob":"^8.1.0","@types/node":"^20.0.0","firebase-admin":"^11.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"firebase":"^10.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/appcore-auth_1.0.17_1759043690618_0.9908413875024895","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"@linhnv1902/appcore-auth","version":"1.0.19","keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"author":{"name":"AppCore Team"},"license":"MIT","_id":"@linhnv1902/appcore-auth@1.0.19","maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"dist":{"shasum":"c783f873c03c43324385bc78ced97b1bf516859e","tarball":"https://registry.npmjs.org/@linhnv1902/appcore-auth/-/appcore-auth-1.0.19.tgz","fileCount":31,"integrity":"sha512-n/bgiSrc4u5gWb46psGwyo4JgO3yS4T9wHoDc6aobmxM9T3uxWetSxdwACDbFNvblkZh8raLyZ2rev0dfO34lA==","signatures":[{"sig":"MEQCIBV2IGce81yvTsHru2y76N+gUYipbE5cgRj8iW/URU04AiAPmR0jCpWya2Do4HWCGIgfcS7XWXXKiDhSOVx2GeUTdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74144},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=6.0.0","node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"673b54b400ea7007fb28c9259ca440339481b437","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","watch":"tsc --watch","lint:fix":"eslint src --ext .ts --fix","publish:dist":"./scripts/publish-dist.sh","prepublishOnly":"npm run clean && npm run build","publish:dist:major":"./scripts/publish-dist.sh major","publish:dist:minor":"./scripts/publish-dist.sh minor","publish:dist:patch":"./scripts/publish-dist.sh patch"},"_npmUser":{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"},"repository":{"url":"git+https://github.com/nguyenvanlinh1902/appCore.git","type":"git"},"_npmVersion":"11.2.0","description":"Reusable authentication library for AppCore projects","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"qs":"^6.11.0","koa":"^2.14.2","axios":"^1.6.0","koa-router":"^12.0.0","typescript":"^5.0.0","@types/glob":"^8.1.0","@types/node":"^20.0.0","firebase-admin":"^11.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"firebase":"^10.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/appcore-auth_1.0.19_1759044179942_0.987827510907098","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"@linhnv1902/appcore-auth","version":"1.0.21","keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"author":{"name":"AppCore Team"},"license":"MIT","_id":"@linhnv1902/appcore-auth@1.0.21","maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"dist":{"shasum":"a04e8d9dadd52a8991d3e9656d4b0dd794414b78","tarball":"https://registry.npmjs.org/@linhnv1902/appcore-auth/-/appcore-auth-1.0.21.tgz","fileCount":35,"integrity":"sha512-YcgnPlhBwq5btl6gkZsEfI4OZV2PGClFIsQ/cLSeTFakSS4UKUoWPwS10OIZvkFE8vo6qC5oGCMHDqdlkMg6bg==","signatures":[{"sig":"MEYCIQDGbEX12PWWjCI+w8GntS8/myx6X3AZa5n4nwDOGfp7GQIhAIE2XnWyaY3JUFRyN+gkHe97gPmD2fU0mQZYOiASMQOO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83641},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=6.0.0","node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"688bc1a3830f6c5bb4c2dca18af2330f0bd434d0","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","watch":"tsc --watch","lint:fix":"eslint src --ext .ts --fix","publish:dist":"./scripts/publish-dist.sh","prepublishOnly":"npm run clean && npm run build","publish:dist:major":"./scripts/publish-dist.sh major","publish:dist:minor":"./scripts/publish-dist.sh minor","publish:dist:patch":"./scripts/publish-dist.sh patch"},"_npmUser":{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"},"repository":{"url":"git+https://github.com/nguyenvanlinh1902/appCore.git","type":"git"},"_npmVersion":"11.2.0","description":"Reusable authentication library for AppCore projects","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"qs":"^6.11.0","koa":"^2.14.2","axios":"^1.6.0","koa-router":"^12.0.0","typescript":"^5.0.0","@types/glob":"^8.1.0","@types/node":"^20.0.0","firebase-admin":"^11.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"firebase":"^10.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/appcore-auth_1.0.21_1759044427951_0.7876171081767984","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"@linhnv1902/appcore-auth","version":"1.0.22","keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"author":{"name":"AppCore Team"},"license":"MIT","_id":"@linhnv1902/appcore-auth@1.0.22","maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"dist":{"shasum":"a5bd725789c032d925c229cdaa0d6c3995ee652d","tarball":"https://registry.npmjs.org/@linhnv1902/appcore-auth/-/appcore-auth-1.0.22.tgz","fileCount":35,"integrity":"sha512-NZIGBCCp3M49PfptCs6NlhAqM0PzhFSvHOLnH5W5DsXI4GMLxosG8o8MBzyvtU5h7lN7Vu0ugIWGBj8XcTpncA==","signatures":[{"sig":"MEQCIEZKrjBkKSiy3V5Qs5Fer0CmZmtVKbJaoj0EiovTKHCTAiAn3J+PPAS2ZAwMUnrHn9forLLGztF3gwpe80zNy3V4LQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84605},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=6.0.0","node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"0b48452d2d9496e356dafe496b62d95baa3a76c6","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","watch":"tsc --watch","lint:fix":"eslint src --ext .ts --fix","publish:dist":"./scripts/publish-dist.sh","prepublishOnly":"npm run clean && npm run build","publish:dist:major":"./scripts/publish-dist.sh major","publish:dist:minor":"./scripts/publish-dist.sh minor","publish:dist:patch":"./scripts/publish-dist.sh patch"},"_npmUser":{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"},"repository":{"url":"git+https://github.com/nguyenvanlinh1902/appCore.git","type":"git"},"_npmVersion":"11.2.0","description":"Reusable authentication library for AppCore projects","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"qs":"^6.11.0","koa":"^2.14.2","axios":"^1.6.0","koa-router":"^12.0.0","typescript":"^5.0.0","@types/glob":"^8.1.0","@types/node":"^20.0.0","firebase-admin":"^11.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"firebase":"^10.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/appcore-auth_1.0.22_1759044577064_0.1602205354691224","host":"s3://npm-registry-packages-npm-production"}},"1.0.23":{"name":"@linhnv1902/appcore-auth","version":"1.0.23","keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"author":{"name":"AppCore Team"},"license":"MIT","_id":"@linhnv1902/appcore-auth@1.0.23","maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"dist":{"shasum":"15e36fa37ad2bb278c511bb5d52c5a68b5a280ae","tarball":"https://registry.npmjs.org/@linhnv1902/appcore-auth/-/appcore-auth-1.0.23.tgz","fileCount":39,"integrity":"sha512-zckBotHJaw3lBrxhDrH4DjAgxz0MxXNe9aKMZMVzeLeDB+Rq9AdO4Ojzkf45wX2yQ1JTCKsazk4HJ3u30P9kEw==","signatures":[{"sig":"MEYCIQCEk4jLyxfuQnSJ4162fe7B1rXymZ6DqzjAYv6B2tPv3AIhAO/qeHrY5exuiKAWyoS0T7LrlbwPD9PDcQqBK8Orey5P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89964},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=6.0.0","node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"4a55fed4022fcb771278d2ea383d4d027d0d24fd","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","watch":"tsc --watch","lint:fix":"eslint src --ext .ts --fix","publish:dist":"./scripts/publish-dist.sh","prepublishOnly":"npm run clean && npm run build","publish:dist:major":"./scripts/publish-dist.sh major","publish:dist:minor":"./scripts/publish-dist.sh minor","publish:dist:patch":"./scripts/publish-dist.sh patch"},"_npmUser":{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"},"repository":{"url":"git+https://github.com/nguyenvanlinh1902/appCore.git","type":"git"},"_npmVersion":"11.2.0","description":"Reusable authentication library for AppCore projects","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"qs":"^6.11.0","koa":"^2.14.2","axios":"^1.6.0","koa-router":"^12.0.0","typescript":"^5.0.0","@types/glob":"^8.1.0","@types/node":"^20.0.0","firebase-admin":"^11.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"firebase":"^10.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/appcore-auth_1.0.23_1759046592869_0.6382574647066386","host":"s3://npm-registry-packages-npm-production"}},"1.0.24":{"name":"@linhnv1902/appcore-auth","version":"1.0.24","keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"author":{"name":"AppCore Team"},"license":"MIT","_id":"@linhnv1902/appcore-auth@1.0.24","maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"dist":{"shasum":"7cc29a536493acf5bc0a740bac74636eff3ae2da","tarball":"https://registry.npmjs.org/@linhnv1902/appcore-auth/-/appcore-auth-1.0.24.tgz","fileCount":39,"integrity":"sha512-KqrA03JsnEU+gRRA27pxlfNtruvGPdoezvZMccU2kwXJ1rzD8SfKqyJfLlCH0GtpxozYCTxMUaVd7lTAmmwJWA==","signatures":[{"sig":"MEUCIC4EluXAQDzQFI+5aL0jkpjfi3PKatwiIHXDyU+M0DekAiEA7sLj/Bo4i8A2ztNZCN04ontSqIS1vHsWPdnILfZJc5E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91331},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=6.0.0","node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"57f8792a7f7aad61c501bb2e705cf618899401e7","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","watch":"tsc --watch","lint:fix":"eslint src --ext .ts --fix","publish:dist":"./scripts/publish-dist.sh","prepublishOnly":"npm run clean && npm run build","publish:dist:major":"./scripts/publish-dist.sh major","publish:dist:minor":"./scripts/publish-dist.sh minor","publish:dist:patch":"./scripts/publish-dist.sh patch"},"_npmUser":{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"},"repository":{"url":"git+https://github.com/nguyenvanlinh1902/appCore.git","type":"git"},"_npmVersion":"11.2.0","description":"Reusable authentication library for AppCore projects","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"qs":"^6.11.0","koa":"^2.14.2","axios":"^1.6.0","koa-router":"^12.0.0","typescript":"^5.0.0","@types/glob":"^8.1.0","@types/node":"^20.0.0","firebase-admin":"^11.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"firebase":"^10.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/appcore-auth_1.0.24_1759047832791_0.3132173136824443","host":"s3://npm-registry-packages-npm-production"}},"1.0.25":{"name":"@linhnv1902/appcore-auth","version":"1.0.25","keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"author":{"name":"AppCore Team"},"license":"MIT","_id":"@linhnv1902/appcore-auth@1.0.25","maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"dist":{"shasum":"37a173ddeca7e67324350e2c6f224961e64c1d72","tarball":"https://registry.npmjs.org/@linhnv1902/appcore-auth/-/appcore-auth-1.0.25.tgz","fileCount":39,"integrity":"sha512-QIYXqxfjVCAKPsn7hKEU58Q+ER8J6RZoxpSI56B+z9PSq51lIlnAR8ZDUYQZp44F//ton+wvRhViSQFZXKEfnw==","signatures":[{"sig":"MEUCIQDyWTZVPNEkq4AuPTWqVER5pUSxuSAy75rdy3sJNT7kVwIgLF0LClC7o7+wCaiO3dZrYVclpk4dxQNA59xnrzBE7hY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92719},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=6.0.0","node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"12e2d2b5529fd91ba3ff392f6dd567d90c6fe973","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","watch":"tsc --watch","lint:fix":"eslint src --ext .ts --fix","publish:dist":"./scripts/publish-dist.sh","prepublishOnly":"npm run clean && npm run build","publish:dist:major":"./scripts/publish-dist.sh major","publish:dist:minor":"./scripts/publish-dist.sh minor","publish:dist:patch":"./scripts/publish-dist.sh patch"},"_npmUser":{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"},"repository":{"url":"git+https://github.com/nguyenvanlinh1902/appCore.git","type":"git"},"_npmVersion":"11.2.0","description":"Reusable authentication library for AppCore projects","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"qs":"^6.11.0","koa":"^2.14.2","axios":"^1.6.0","koa-router":"^12.0.0","typescript":"^5.0.0","@types/glob":"^8.1.0","@types/node":"^20.0.0","firebase-admin":"^11.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"firebase":"^10.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/appcore-auth_1.0.25_1759048208274_0.6928563989455143","host":"s3://npm-registry-packages-npm-production"}},"1.0.26":{"name":"@linhnv1902/appcore-auth","version":"1.0.26","keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"author":{"name":"AppCore Team"},"license":"MIT","_id":"@linhnv1902/appcore-auth@1.0.26","maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"dist":{"shasum":"19964ba2af7c9bac400786c54a5c2f388339cd84","tarball":"https://registry.npmjs.org/@linhnv1902/appcore-auth/-/appcore-auth-1.0.26.tgz","fileCount":39,"integrity":"sha512-JwIwb1c3FgXHUdI/MqRtBj8NDb38fFXuT16Qa937J7zi2po5jNAi7JUZL67xP63ABU7hb9HXDnai5aP0XtphFA==","signatures":[{"sig":"MEUCIQCFY+tkQvvCx8hRMKa2LzzMKruGqFpX7oM2Qk6VtID3rwIgciUQngcKUaZqTli/fn1w72QbeL/guZKncW2diRj8010=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94405},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=6.0.0","node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"4a5d36da731a6fee7c212e17ffb79ff7600f4c1b","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","watch":"tsc --watch","lint:fix":"eslint src --ext .ts --fix","publish:dist":"./scripts/publish-dist.sh","prepublishOnly":"npm run clean && npm run build","publish:dist:major":"./scripts/publish-dist.sh major","publish:dist:minor":"./scripts/publish-dist.sh minor","publish:dist:patch":"./scripts/publish-dist.sh patch"},"_npmUser":{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"},"repository":{"url":"git+https://github.com/nguyenvanlinh1902/appCore.git","type":"git"},"_npmVersion":"11.2.0","description":"Reusable authentication library for AppCore projects","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"qs":"^6.11.0","koa":"^2.14.2","axios":"^1.6.0","koa-router":"^12.0.0","typescript":"^5.0.0","@types/glob":"^8.1.0","@types/node":"^20.0.0","firebase-admin":"^11.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"firebase":"^10.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/appcore-auth_1.0.26_1759048328489_0.4478071492458042","host":"s3://npm-registry-packages-npm-production"}},"1.0.27":{"name":"@linhnv1902/appcore-auth","version":"1.0.27","keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"author":{"name":"AppCore Team"},"license":"MIT","_id":"@linhnv1902/appcore-auth@1.0.27","maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"dist":{"shasum":"b27ed7f5a6788d8109122c0df31f4608add2c633","tarball":"https://registry.npmjs.org/@linhnv1902/appcore-auth/-/appcore-auth-1.0.27.tgz","fileCount":39,"integrity":"sha512-8wQ/CRoTkgPzOQSGvLc7CPvKzSfIQkQyMpyx/EP99sBh7XJt5qFywzTgww+BN5L9Z56qwvLQ/W+U6oWGL0MmbQ==","signatures":[{"sig":"MEUCIQD8BKc7ECpCJENB4Y8VKhiq8yPxDOJ0tgH+IL6gUjYKoAIgZgVhe/F+dTsElYISPTGpgD7x5MLp7EgUOCvULyPVE9s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94405},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=6.0.0","node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"cc225167d5639cb12170ef6b64c59f8b49ad8d60","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","watch":"tsc --watch","lint:fix":"eslint src --ext .ts --fix","publish:dist":"./scripts/publish-dist.sh","prepublishOnly":"npm run clean && npm run build","publish:dist:major":"./scripts/publish-dist.sh major","publish:dist:minor":"./scripts/publish-dist.sh minor","publish:dist:patch":"./scripts/publish-dist.sh patch"},"_npmUser":{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"},"repository":{"url":"git+https://github.com/nguyenvanlinh1902/appCore.git","type":"git"},"_npmVersion":"11.2.0","description":"Reusable authentication library for AppCore projects","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"qs":"^6.11.0","koa":"^2.14.2","axios":"^1.6.0","koa-router":"^12.0.0","typescript":"^5.0.0","@types/glob":"^8.1.0","@types/node":"^20.0.0","firebase-admin":"^11.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"firebase":"^10.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/appcore-auth_1.0.27_1759060166198_0.7423644571636119","host":"s3://npm-registry-packages-npm-production"}},"1.0.28":{"name":"@linhnv1902/appcore-auth","version":"1.0.28","keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"author":{"name":"AppCore Team"},"license":"MIT","_id":"@linhnv1902/appcore-auth@1.0.28","maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"dist":{"shasum":"64f74a97a145fa1de1c9b0ac2b344fd1deb6f7d5","tarball":"https://registry.npmjs.org/@linhnv1902/appcore-auth/-/appcore-auth-1.0.28.tgz","fileCount":43,"integrity":"sha512-ZRsbl8AaVWnJat8z1EMXTzvvN2X8pxMJcu3cX1MEOO8qVNbrgzehP7OBl0Cs8XwkH3S7iGPO/4djeCpyVjDNqQ==","signatures":[{"sig":"MEYCIQDXeNkQHvjuCUd+h33X1cs3SvZmkg7NEIN0P8C1Z2kdxwIhAMaxiC3Y2DZqcXXjOoHj2ptwi/pj3NIMzWzJhdj/QRxl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110315},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=6.0.0","node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f485e747cd17fc697468921635d165cd78cbae63","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","watch":"tsc --watch","lint:fix":"eslint src --ext .ts --fix","publish:dist":"./scripts/publish-dist.sh","prepublishOnly":"npm run clean && npm run build","publish:dist:major":"./scripts/publish-dist.sh major","publish:dist:minor":"./scripts/publish-dist.sh minor","publish:dist:patch":"./scripts/publish-dist.sh patch"},"_npmUser":{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"},"repository":{"url":"git+https://github.com/nguyenvanlinh1902/appCore.git","type":"git"},"_npmVersion":"11.2.0","description":"Reusable authentication library for AppCore projects","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"qs":"^6.11.0","koa":"^2.14.2","axios":"^1.6.0","koa-router":"^12.0.0","typescript":"^5.0.0","@types/glob":"^8.1.0","@types/node":"^20.0.0","firebase-admin":"^11.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"firebase":"^10.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/appcore-auth_1.0.28_1759062386384_0.28413442693687396","host":"s3://npm-registry-packages-npm-production"}},"1.0.29":{"name":"@linhnv1902/appcore-auth","version":"1.0.29","keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"author":{"name":"AppCore Team"},"license":"MIT","_id":"@linhnv1902/appcore-auth@1.0.29","maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"dist":{"shasum":"8e4aaabed6e6980b6354a165ad258a25e6e67995","tarball":"https://registry.npmjs.org/@linhnv1902/appcore-auth/-/appcore-auth-1.0.29.tgz","fileCount":43,"integrity":"sha512-2LXQBqL1LlNMSe4ZeHDo1QsIi0M8h+mSec3kv32PJ6ZD1UbIIxCWNM24tL4OvciwhaoymmZEe54lc+IPBRMzHw==","signatures":[{"sig":"MEUCIDp3DHNr+q/0G3SgRqC+MBuaHNZ3OkUw8uTYfEApPGcaAiEAsQIXf6dqhCE+GmXQ8V9kHRhvfWEi80lz63wxhidLBFw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113265},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=6.0.0","node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f485e747cd17fc697468921635d165cd78cbae63","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","watch":"tsc --watch","lint:fix":"eslint src --ext .ts --fix","publish:dist":"./scripts/publish-dist.sh","prepublishOnly":"npm run clean && npm run build","publish:dist:major":"./scripts/publish-dist.sh major","publish:dist:minor":"./scripts/publish-dist.sh minor","publish:dist:patch":"./scripts/publish-dist.sh patch"},"_npmUser":{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"},"repository":{"url":"git+https://github.com/nguyenvanlinh1902/appCore.git","type":"git"},"_npmVersion":"11.2.0","description":"Reusable authentication library for AppCore projects","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"qs":"^6.11.0","koa":"^2.14.2","axios":"^1.6.0","koa-router":"^12.0.0","typescript":"^5.0.0","@types/glob":"^8.1.0","@types/node":"^20.0.0","firebase-admin":"^11.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"firebase":"^10.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/appcore-auth_1.0.29_1759062934660_0.06813606681571582","host":"s3://npm-registry-packages-npm-production"}},"1.0.30":{"name":"@linhnv1902/appcore-auth","version":"1.0.30","keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"author":{"name":"AppCore Team"},"license":"MIT","_id":"@linhnv1902/appcore-auth@1.0.30","maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"dist":{"shasum":"40a0be71ef61be6769409dd03a389c26163a88c2","tarball":"https://registry.npmjs.org/@linhnv1902/appcore-auth/-/appcore-auth-1.0.30.tgz","fileCount":43,"integrity":"sha512-ksojJ9rtLbeXKe4CzxswVkqWT5dNmTp+YFts2K2LI/V2vha+82aeUPt35XHfLHUxg2M/DgKBlWMV492159N7Lg==","signatures":[{"sig":"MEQCIBSojZuL10IvV3QZe+BOduOZ1m5PNo3Y1yOVTgI46hIXAiAJ04XZjC+T4LFaWqwG39ul1mSPSxIYRooNSHWT9U/1Cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114245},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=6.0.0","node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f485e747cd17fc697468921635d165cd78cbae63","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","watch":"tsc --watch","lint:fix":"eslint src --ext .ts --fix","publish:dist":"./scripts/publish-dist.sh","prepublishOnly":"npm run clean && npm run build","publish:dist:major":"./scripts/publish-dist.sh major","publish:dist:minor":"./scripts/publish-dist.sh minor","publish:dist:patch":"./scripts/publish-dist.sh patch"},"_npmUser":{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"},"repository":{"url":"git+https://github.com/nguyenvanlinh1902/appCore.git","type":"git"},"_npmVersion":"11.2.0","description":"Reusable authentication library for AppCore projects","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"qs":"^6.11.0","koa":"^2.14.2","axios":"^1.6.0","koa-router":"^12.0.0","typescript":"^5.0.0","@types/glob":"^8.1.0","@types/node":"^20.0.0","firebase-admin":"^11.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"firebase":"^10.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/appcore-auth_1.0.30_1759063166536_0.77834033852006","host":"s3://npm-registry-packages-npm-production"}},"1.0.31":{"name":"@linhnv1902/appcore-auth","version":"1.0.31","keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"author":{"name":"AppCore Team"},"license":"MIT","_id":"@linhnv1902/appcore-auth@1.0.31","maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"dist":{"shasum":"59240a1e41bc863cb86304733cc8547825ed82af","tarball":"https://registry.npmjs.org/@linhnv1902/appcore-auth/-/appcore-auth-1.0.31.tgz","fileCount":43,"integrity":"sha512-SWaohpknoR2f0pRh6Slo0+RDaJ9EdlfLafRUkiTQlqfH4r7j/0HdiK0Sfc0uRi5DMr5S/FqNDj13xDIqBIeVZg==","signatures":[{"sig":"MEQCIBff0R4LFbhEClr2Zr08y/VOJ3LGUUP9fkDaj/0sFn2qAiB1UeE2h1JjhFlj0bXWHqejGIBzVoW+1WJnMYgbZAT3jw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118894},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=6.0.0","node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f485e747cd17fc697468921635d165cd78cbae63","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","watch":"tsc --watch","lint:fix":"eslint src --ext .ts --fix","publish:dist":"./scripts/publish-dist.sh","prepublishOnly":"npm run clean && npm run build","publish:dist:major":"./scripts/publish-dist.sh major","publish:dist:minor":"./scripts/publish-dist.sh minor","publish:dist:patch":"./scripts/publish-dist.sh patch"},"_npmUser":{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"},"repository":{"url":"git+https://github.com/nguyenvanlinh1902/appCore.git","type":"git"},"_npmVersion":"11.2.0","description":"Reusable authentication library for AppCore projects","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"qs":"^6.11.0","koa":"^2.14.2","axios":"^1.6.0","koa-router":"^12.0.0","typescript":"^5.0.0","@types/glob":"^8.1.0","@types/node":"^20.0.0","firebase-admin":"^11.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"firebase":"^10.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/appcore-auth_1.0.31_1759063404910_0.9237800239043144","host":"s3://npm-registry-packages-npm-production"}},"1.0.32":{"name":"@linhnv1902/appcore-auth","version":"1.0.32","keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"author":{"name":"AppCore Team"},"license":"MIT","_id":"@linhnv1902/appcore-auth@1.0.32","maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"dist":{"shasum":"e342c2b516f0d0fc48ba5f52ec9e0c6c009a369c","tarball":"https://registry.npmjs.org/@linhnv1902/appcore-auth/-/appcore-auth-1.0.32.tgz","fileCount":43,"integrity":"sha512-Ot5orH1galthpTQZTLjjzLXVXnCMUYGLozHLMScErqLcVqmKMPVxGOeJ5dIrgyJQT8tn5VEySpt9HYW17F9hRg==","signatures":[{"sig":"MEUCIBQlXVt59dNPpx70ODm30TxNxRzqM8u8MSByG1rGW52oAiEAyxzjgm3TBmYMuRlSWIR9nHDX+XSto4NBAt34qQqKfRc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118245},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=6.0.0","node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f485e747cd17fc697468921635d165cd78cbae63","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","watch":"tsc --watch","lint:fix":"eslint src --ext .ts --fix","publish:dist":"./scripts/publish-dist.sh","prepublishOnly":"npm run clean && npm run build","publish:dist:major":"./scripts/publish-dist.sh major","publish:dist:minor":"./scripts/publish-dist.sh minor","publish:dist:patch":"./scripts/publish-dist.sh patch"},"_npmUser":{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"},"repository":{"url":"git+https://github.com/nguyenvanlinh1902/appCore.git","type":"git"},"_npmVersion":"11.2.0","description":"Reusable authentication library for AppCore projects","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"qs":"^6.11.0","koa":"^2.14.2","axios":"^1.6.0","koa-router":"^12.0.0","typescript":"^5.0.0","@types/glob":"^8.1.0","@types/node":"^20.0.0","firebase-admin":"^11.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"firebase":"^10.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/appcore-auth_1.0.32_1759063699378_0.9807254438099533","host":"s3://npm-registry-packages-npm-production"}},"1.0.33":{"name":"@linhnv1902/appcore-auth","version":"1.0.33","keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"author":{"name":"AppCore Team"},"license":"MIT","_id":"@linhnv1902/appcore-auth@1.0.33","maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"dist":{"shasum":"cbbecfb6ab0339dd2ab0bc9628359b9824dcb4d6","tarball":"https://registry.npmjs.org/@linhnv1902/appcore-auth/-/appcore-auth-1.0.33.tgz","fileCount":43,"integrity":"sha512-x74LRyhseT74riejHVdwfSLjpBxJP+1svuOw4BLBd/BYhZ/9Vq2A+1WY50zFtsx2ZNGMGNJXxErYVAxh4KaTcw==","signatures":[{"sig":"MEUCIAmog6J+GyPXkPzxZcJ36IWBupJ75GYbNLCtl/jAkpirAiEA681gwT/ehnGdTFeqTkY0d7JIvc0MHfyex/VdkuU88nc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121412},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=6.0.0","node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f485e747cd17fc697468921635d165cd78cbae63","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","watch":"tsc --watch","lint:fix":"eslint src --ext .ts --fix","publish:dist":"./scripts/publish-dist.sh","prepublishOnly":"npm run clean && npm run build","publish:dist:major":"./scripts/publish-dist.sh major","publish:dist:minor":"./scripts/publish-dist.sh minor","publish:dist:patch":"./scripts/publish-dist.sh patch"},"_npmUser":{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"},"repository":{"url":"git+https://github.com/nguyenvanlinh1902/appCore.git","type":"git"},"_npmVersion":"11.2.0","description":"Reusable authentication library for AppCore projects","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"qs":"^6.11.0","koa":"^2.14.2","axios":"^1.6.0","koa-router":"^12.0.0","typescript":"^5.0.0","@types/glob":"^8.1.0","@types/node":"^20.0.0","firebase-admin":"^11.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"firebase":"^10.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/appcore-auth_1.0.33_1759063935798_0.4746810511129931","host":"s3://npm-registry-packages-npm-production"}},"1.0.34":{"name":"@linhnv1902/appcore-auth","version":"1.0.34","keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"author":{"name":"AppCore Team"},"license":"MIT","_id":"@linhnv1902/appcore-auth@1.0.34","maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"dist":{"shasum":"bd0d6e2c72cc30a6da421bf1405355ba4b01f98c","tarball":"https://registry.npmjs.org/@linhnv1902/appcore-auth/-/appcore-auth-1.0.34.tgz","fileCount":43,"integrity":"sha512-ysFqKWCWGxTSDuxsn+9vZbYY/cMqoxpHbAw+b9GFVtZwVgLznOHQynhsklMV0fGn5+wuEKkd/+pdAybEuT0kzw==","signatures":[{"sig":"MEUCIA+Eqo5UDJJ8wv6TBUNnxgOOi6ij6GZE7Is2dd6ZbXGtAiEA50OyXqCfQOFU0QqvfkC2ToCRQICZd6Varv29FhMzBJc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122207},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"npm":">=6.0.0","node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f485e747cd17fc697468921635d165cd78cbae63","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rm -rf dist","watch":"tsc --watch","lint:fix":"eslint src --ext .ts --fix","publish:dist":"./scripts/publish-dist.sh","prepublishOnly":"npm run clean && npm run build","publish:dist:major":"./scripts/publish-dist.sh major","publish:dist:minor":"./scripts/publish-dist.sh minor","publish:dist:patch":"./scripts/publish-dist.sh patch"},"_npmUser":{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"},"repository":{"url":"git+https://github.com/nguyenvanlinh1902/appCore.git","type":"git"},"_npmVersion":"11.2.0","description":"Reusable authentication library for AppCore projects","directories":{},"sideEffects":false,"_nodeVersion":"20.18.3","dependencies":{"qs":"^6.11.0","koa":"^2.14.2","axios":"^1.6.0","koa-router":"^12.0.0","typescript":"^5.0.0","@types/glob":"^8.1.0","@types/node":"^20.0.0","firebase-admin":"^11.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"firebase":"^10.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0"},"_npmOperationalInternal":{"tmp":"tmp/appcore-auth_1.0.34_1759064067998_0.42665017621204737","host":"s3://npm-registry-packages-npm-production"}},"1.0.35":{"name":"@linhnv1902/appcore-auth","version":"1.0.35","description":"Reusable authentication library for AppCore projects","main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.js","types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"sideEffects":false,"scripts":{"build":"tsc","watch":"tsc --watch","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build","test":"jest","lint":"eslint src --ext .ts","lint:fix":"eslint src --ext .ts --fix","publish:dist":"./scripts/publish-dist.sh","publish:dist:patch":"./scripts/publish-dist.sh patch","publish:dist:minor":"./scripts/publish-dist.sh minor","publish:dist:major":"./scripts/publish-dist.sh major"},"dependencies":{"axios":"^1.6.0","firebase-admin":"^11.11.0","koa":"^2.14.2","koa-router":"^12.0.0","qs":"^6.11.0","@types/glob":"^8.1.0","@types/node":"^20.0.0","typescript":"^5.0.0"},"devDependencies":{"@types/koa":"^2.13.0","@types/koa-router":"^7.4.0","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","eslint":"^8.0.0","jest":"^29.0.0"},"engines":{"node":">=14.0.0","npm":">=6.0.0"},"peerDependencies":{"firebase":"^10.0.0","@types/koa":"^2.13.0","@types/koa-router":"^7.4.0"},"keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"author":{"name":"AppCore Team"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/nguyenvanlinh1902/appCore.git"},"bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","_id":"@linhnv1902/appcore-auth@1.0.35","gitHead":"f485e747cd17fc697468921635d165cd78cbae63","_nodeVersion":"20.18.3","_npmVersion":"11.2.0","dist":{"integrity":"sha512-/PrCAwNxybcWB1X10qCY3V/6q62lmkDWrPkykyCkVHcay/apnwZpAjLMAOT4UihEoc2ht9WpAxtLJhGi4V1E7Q==","shasum":"033347702b1cf82d416bf32969fb7b6592b4be1e","tarball":"https://registry.npmjs.org/@linhnv1902/appcore-auth/-/appcore-auth-1.0.35.tgz","fileCount":43,"unpackedSize":120358,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAQyqVASk7Pv0nVcj+NT4hXU1Riakic+xzl27RfCPl2zAiBM1gGSVlHW//tIz0XUTb3L+427a31zao4VKgzhjOWczg=="}]},"_npmUser":{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"},"directories":{},"maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/appcore-auth_1.0.35_1759064218640_0.08099969547647445"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-27T07:27:46.790Z","modified":"2025-09-28T12:56:59.079Z","1.0.0":"2025-09-27T07:27:47.019Z","1.0.1":"2025-09-27T07:38:21.348Z","1.0.2":"2025-09-27T07:40:20.927Z","1.0.3":"2025-09-28T04:32:56.102Z","1.0.4":"2025-09-28T04:34:15.003Z","1.0.5":"2025-09-28T04:36:03.239Z","1.0.6":"2025-09-28T04:38:56.358Z","1.0.7":"2025-09-28T04:41:22.846Z","1.0.8":"2025-09-28T04:43:42.784Z","1.0.9":"2025-09-28T04:46:13.893Z","1.0.10":"2025-09-28T04:48:55.890Z","1.0.11":"2025-09-28T05:04:02.226Z","1.0.12":"2025-09-28T05:08:28.203Z","1.0.13":"2025-09-28T05:09:19.418Z","1.0.14":"2025-09-28T05:44:35.102Z","1.0.17":"2025-09-28T07:14:50.834Z","1.0.19":"2025-09-28T07:23:00.132Z","1.0.21":"2025-09-28T07:27:08.182Z","1.0.22":"2025-09-28T07:29:37.241Z","1.0.23":"2025-09-28T08:03:13.083Z","1.0.24":"2025-09-28T08:23:52.980Z","1.0.25":"2025-09-28T08:30:08.467Z","1.0.26":"2025-09-28T08:32:08.662Z","1.1.0":"2025-09-28T10:42:12.089Z","1.1.1":"2025-09-28T11:24:21.416Z","1.0.27":"2025-09-28T11:49:26.462Z","1.0.28":"2025-09-28T12:26:26.572Z","1.0.29":"2025-09-28T12:35:34.903Z","1.0.30":"2025-09-28T12:39:26.724Z","1.0.31":"2025-09-28T12:43:25.098Z","1.0.32":"2025-09-28T12:48:19.571Z","1.0.33":"2025-09-28T12:52:15.989Z","1.0.34":"2025-09-28T12:54:28.172Z","1.0.35":"2025-09-28T12:56:58.859Z"},"bugs":{"url":"https://github.com/nguyenvanlinh1902/appCore/issues"},"author":{"name":"AppCore Team"},"license":"MIT","homepage":"https://github.com/nguyenvanlinh1902/appCore#readme","keywords":["auth","firebase","shopify","oauth","authentication","typescript"],"repository":{"type":"git","url":"git+https://github.com/nguyenvanlinh1902/appCore.git"},"description":"Reusable authentication library for AppCore projects","maintainers":[{"name":"linhnv1902","email":"linhnguyenvan1902@gmail.com"}],"readme":"# @linhnv1902/appcore-auth\n\n[![npm version](https://badge.fury.io/js/%40linhnv1902%2Fappcore-auth.svg)](https://badge.fury.io/js/%40linhnv1902%2Fappcore-auth)\n[![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue.svg)](https://www.typescriptlang.org/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nReusable TypeScript authentication library for AppCore projects supporting Firebase and Shopify OAuth.\n\n## Features\n\n- 🔐 **Firebase Authentication** - Custom tokens and JWT verification\n- 🛍️ **Shopify OAuth** - Complete OAuth flow for Shopify apps\n- 🎯 **Koa.js Middleware** - Ready-to-use middleware for Node.js\n- 📱 **Frontend Helpers** - React/JS authentication utilities\n- 🔄 **TypeScript Support** - Full type safety and IntelliSense\n- 🚀 **Reusable** - Works across multiple projects\n\n## Installation\n\n```bash\nnpm install @linhnv1902/appcore-auth\n```\n\n## Quick Start\n\n### Backend (Node.js + Koa)\n\n```typescript\nimport { firebaseAuth, shopifyAuth } from '@linhnv1902/appcore-auth';\n\n// Firebase authentication middleware\napp.use(firebaseAuth({\n  onAuthSuccess: (ctx, user) => {\n    console.log('User authenticated:', user.shopID);\n  }\n}));\n\n// Shopify OAuth router\nconst authRouter = shopifyAuth({\n  apiKey: 'your-shopify-api-key',\n  secret: 'your-shopify-secret',\n  scopes: ['read_products', 'write_products'],\n  hostName: 'https://your-app.com',\n  firebaseApiKey: 'your-firebase-api-key',\n  isEmbeddedApp: true\n}, shopRepository);\n\napp.use(authRouter.routes());\n```\n\n### Frontend (React/JS)\n\n```typescript\nimport { initializeFirebase, createApiClient, createAuthStateHandler } from '@linhnv1902/appcore-auth';\n\n// Initialize Firebase\nconst { auth, db } = initializeFirebase({\n  appId: 'your-app-id',\n  apiKey: 'your-api-key',\n  authDomain: 'your-domain',\n  projectId: 'your-project-id',\n  storageBucket: 'your-bucket'\n});\n\n// Create API client\nconst api = createApiClient({\n  auth,\n  baseURL: '/api',\n  isEmbeddedApp: () => window.location.pathname.includes('/embed')\n});\n\n// Handle authentication state\nconst handleAuthState = createAuthStateHandler({\n  auth,\n  api,\n  onAuthSuccess: (user, activeShop) => {\n    console.log('User logged in:', user.uid);\n    console.log('Active shop:', activeShop);\n  },\n  onAuthError: (error) => {\n    console.error('Auth error:', error);\n  }\n});\n\nauth.onAuthStateChanged(handleAuthState);\n```\n\n## API Reference\n\n### Backend APIs\n\n#### `firebaseAuth(options?)`\n\nFirebase authentication middleware for Koa.js.\n\n```typescript\ninterface FirebaseAuthOptions {\n  tokenHeader?: string;                    // Token header name (default: 'x-auth-token')\n  onAuthSuccess?: (ctx: Context, user: UserContext) => void;\n  onAuthError?: (ctx: Context, error: Error) => void;\n}\n```\n\n#### `shopifyAuth(options, shopRepository)`\n\nCreates Shopify OAuth router for Koa.js.\n\n```typescript\ninterface ShopifyAuthOptions extends AuthConfig {\n  validateShop?: () => Middleware;\n  validateNonce?: () => Middleware;\n  validateHmac?: (options: AuthConfig) => Middleware;\n}\n```\n\n#### `handleInstall(params, shopRepository, accessTokenKey?)`\n\nHandles new app installation.\n\n```typescript\ninterface InstallParams {\n  shop: string;\n  code: string;\n  apiKey: string;\n  secret: string;\n}\n```\n\n#### `handleLogin(params, accessTokenKey?)`\n\nHandles existing shop login.\n\n```typescript\ninterface LoginParams {\n  shop: ShopData;\n}\n```\n\n### Frontend APIs\n\n#### `initializeFirebase(config)`\n\nInitializes Firebase app and returns auth and database instances.\n\n```typescript\ninterface FirebaseConfig {\n  appId: string;\n  apiKey: string;\n  authDomain: string;\n  measurementId?: string;\n  projectId: string;\n  storageBucket: string;\n}\n```\n\n#### `createApiClient(options)`\n\nCreates authenticated API client function.\n\n```typescript\ninterface ApiClientOptions {\n  auth: Auth;\n  baseURL?: string;\n  timeout?: number;\n  isEmbeddedApp?: () => boolean;\n  authenticatedFetch?: (url: string, options: any) => Promise<Response>;\n}\n```\n\n#### `createAuthStateHandler(options)`\n\nCreates authentication state change handler.\n\n```typescript\ninterface AuthStateHandlerOptions {\n  auth: Auth;\n  api: (uri: string, options?: any) => Promise<any>;\n  onAuthStateChange?: (user: any) => Promise<void> | void;\n  onAuthSuccess?: (user: any, activeShop: any) => Promise<void> | void;\n  onAuthError?: (error: Error) => void;\n}\n```\n\n## TypeScript Support\n\nThis library is written in TypeScript and provides full type definitions:\n\n```typescript\nimport type { \n  AuthConfig, \n  UserContext, \n  ShopData, \n  AuthResult \n} from '@linhnv1902/appcore-auth';\n```\n\n## Examples\n\n### Complete Shopify App Setup\n\n```typescript\n// Backend setup\nimport { shopifyAuth } from '@linhnv1902/appcore-auth';\n\nconst authRouter = shopifyAuth({\n  apiKey: process.env.SHOPIFY_API_KEY!,\n  secret: process.env.SHOPIFY_API_SECRET!,\n  scopes: ['read_products', 'write_products'],\n  hostName: process.env.APP_URL!,\n  firebaseApiKey: process.env.FIREBASE_API_KEY!,\n  isEmbeddedApp: true,\n  successRedirect: '/dashboard',\n  failureRedirect: '/auth/error'\n}, shopRepository);\n\napp.use(authRouter.routes());\n\n// Frontend setup\nimport { initializeFirebase, createAuthStateHandler } from '@linhnv1902/appcore-auth';\n\nconst { auth } = initializeFirebase({\n  appId: process.env.VITE_FIREBASE_APP_ID!,\n  apiKey: process.env.VITE_FIREBASE_API_KEY!,\n  authDomain: process.env.VITE_FIREBASE_AUTH_DOMAIN!,\n  projectId: process.env.VITE_FIREBASE_PROJECT_ID!,\n  storageBucket: process.env.VITE_FIREBASE_STORAGE_BUCKET!\n});\n\nconst handleAuthState = createAuthStateHandler({\n  auth,\n  api: createApiClient({ auth, baseURL: '/api' }),\n  onAuthSuccess: (user, activeShop) => {\n    // Initialize app with user data\n    initializeApp(user, activeShop);\n  },\n  onAuthError: (error) => {\n    // Handle authentication errors\n    showErrorNotification(error.message);\n  }\n});\n\nauth.onAuthStateChanged(handleAuthState);\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Repository\n\n- **GitHub**: [https://github.com/nguyenvanlinh1902/appCore.git](https://github.com/nguyenvanlinh1902/appCore.git)\n- **NPM**: [https://www.npmjs.com/package/@linhnv1902/appcore-auth](https://www.npmjs.com/package/@linhnv1902/appcore-auth)\n\n## Support\n\nIf you have any questions or need help, please open an issue on GitHub.\n","readmeFilename":"README.md"}