{"_id":"@lokalise/frontegg-oauth-client","_rev":"28-8f5866b7a9eb95bf3981f11b560c5bea","name":"@lokalise/frontegg-oauth-client","dist-tags":{"latest":"1.2.1"},"versions":{"1.0.0":{"name":"@lokalise/frontegg-oauth-client","version":"1.0.0","_id":"@lokalise/frontegg-oauth-client@1.0.0","maintainers":[{"name":"dariacm","email":"dariacmaino@gmail.com"},{"name":"forter_lokalise","email":"jevgenijs@lokalise.com"},{"name":"andrew_lokalise","email":"andrew@lokalise.com"},{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"},{"name":"kibertoad","email":"iselwin@gmail.com"},{"name":"arthuracs","email":"arthur.suermondt@lokalise.com"},{"name":"yury.kravtsov","email":"yury.kravtsov@lokalise.com"},{"name":"filippos.mikropoulos","email":"filippos.mikropoulos@lokalise.com"},{"name":"aplokalise","email":"andrei.panait@lokalise.com"},{"name":"botlokalise","email":"github@lokalise.com"},{"name":"laurislokalise","email":"lauris.mikals@lokalise.com"},{"name":"marcocardosolok","email":"marco.cardoso@lokalise.com"},{"name":"bodrovis","email":"golosizpru@gmail.com"}],"dist":{"shasum":"82a13f913f9cedea02562f15a2a762f78fce4d92","tarball":"https://registry.npmjs.org/@lokalise/frontegg-oauth-client/-/frontegg-oauth-client-1.0.0.tgz","fileCount":12,"integrity":"sha512-9Jx0PIP4gVVGkJtZU9QcTVU3/qRqwfhJ+Ot5hacLvn8oLx0bKQ1+kO4JNLUs66bN5ov55qftA0w+dxq1NeVn9g==","signatures":[{"sig":"MEQCIDjHvaPsEIKF97rRgKcpTUpelH3jI0qEeRWZ8qj2HcdWAiBagpy2A+DVysi/6ijCTbBOYQ2M6sKjtgsaiAEzjBDVoA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63835},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"e9f2e22e14038be4f66819b2ab59590c540d2a0d","scripts":{"lint":"biome check && npm run lint:ts","test":"vitest run","build":"vite build","lint:ts":"tsc --noEmit","lint:fix":"biome check --write"},"_npmUser":{"name":"botlokalise","email":"github@lokalise.com"},"_npmVersion":"10.8.2","description":"Minimalistic Frontegg OAuth implementation for browser applications. It offers APIs for retrieving and refreshing tokens and basic user data.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"zod":"^3.23.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.3.2","vite":"^5.3.4","jsdom":"^24.1.1","vitest":"^2.0.4","typescript":"^5.5.4","@biomejs/biome":"^1.8.3","semantic-release":"^24.0.0","@lokalise/biome-config":"^1.3.0","@lokalise/package-vite-config":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/frontegg-oauth-client_1.0.0_1721823351888_0.10776194503683123","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@lokalise/frontegg-oauth-client","version":"1.0.1","_id":"@lokalise/frontegg-oauth-client@1.0.1","maintainers":[{"name":"dariacm","email":"dariacmaino@gmail.com"},{"name":"forter_lokalise","email":"jevgenijs@lokalise.com"},{"name":"andrew_lokalise","email":"andrew@lokalise.com"},{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"},{"name":"kibertoad","email":"iselwin@gmail.com"},{"name":"arthuracs","email":"arthur.suermondt@lokalise.com"},{"name":"yury.kravtsov","email":"yury.kravtsov@lokalise.com"},{"name":"filippos.mikropoulos","email":"filippos.mikropoulos@lokalise.com"},{"name":"aplokalise","email":"andrei.panait@lokalise.com"},{"name":"botlokalise","email":"github@lokalise.com"},{"name":"laurislokalise","email":"lauris.mikals@lokalise.com"},{"name":"marcocardosolok","email":"marco.cardoso@lokalise.com"},{"name":"bodrovis","email":"golosizpru@gmail.com"}],"dist":{"shasum":"5cb5e31802579df22d548bb33bf8e0598345f383","tarball":"https://registry.npmjs.org/@lokalise/frontegg-oauth-client/-/frontegg-oauth-client-1.0.1.tgz","fileCount":12,"integrity":"sha512-cdFBMpO589R+yikhNj/+BvD1cvlNtsfL5oLlr2JtoqaRs6l1/15zVt4O2kk3hUHFoWioWdVBmzt+RMcNNYoZEw==","signatures":[{"sig":"MEUCIGkyu1V+G4jAi07zMEOfxAR01XmC7hglAVkCUKDt/0t0AiEA/zOQDIVwaAFY0vC+dFwbYZuaM8mugiGFTZOQlbqNlKc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":63896},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5d96fb805cc3c97a904030c439135ca765aa68d9","scripts":{"lint":"biome check && npm run lint:ts","test":"vitest run","build":"vite build","lint:ts":"tsc --noEmit","lint:fix":"biome check --write"},"_npmUser":{"name":"botlokalise","email":"github@lokalise.com"},"_npmVersion":"10.8.2","description":"Minimalistic Frontegg OAuth implementation for browser applications. It offers APIs for retrieving and refreshing tokens and basic user data.","directories":{},"_nodeVersion":"20.15.1","dependencies":{"zod":"^3.23.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.3.2","vite":"^5.3.4","jsdom":"^24.1.1","vitest":"^2.0.4","typescript":"^5.5.4","@biomejs/biome":"^1.8.3","semantic-release":"^24.0.0","@lokalise/biome-config":"^1.3.0","@lokalise/package-vite-config":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/frontegg-oauth-client_1.0.1_1721831470005_0.3931548227479349","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@lokalise/frontegg-oauth-client","version":"1.1.0","_id":"@lokalise/frontegg-oauth-client@1.1.0","maintainers":[{"name":"dariacm","email":"dariacmaino@gmail.com"},{"name":"forter_lokalise","email":"jevgenijs@lokalise.com"},{"name":"andrew_lokalise","email":"andrew@lokalise.com"},{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"},{"name":"kibertoad","email":"iselwin@gmail.com"},{"name":"arthuracs","email":"arthur.suermondt@lokalise.com"},{"name":"yury.kravtsov","email":"yury.kravtsov@lokalise.com"},{"name":"filippos.mikropoulos","email":"filippos.mikropoulos@lokalise.com"},{"name":"aplokalise","email":"andrei.panait@lokalise.com"},{"name":"botlokalise","email":"github@lokalise.com"},{"name":"laurislokalise","email":"lauris.mikals@lokalise.com"},{"name":"marcocardosolok","email":"marco.cardoso@lokalise.com"},{"name":"bodrovis","email":"golosizpru@gmail.com"}],"dist":{"shasum":"29f34721bfe775d3fe3da68927219e0358aad4af","tarball":"https://registry.npmjs.org/@lokalise/frontegg-oauth-client/-/frontegg-oauth-client-1.1.0.tgz","fileCount":12,"integrity":"sha512-dCU7MPzSaIIfg6R0nsPXhysw0/J8u76E9W3WLLMSpMsDdngk6OvvsxwV/twLHAeo27M5XctVP3ZAWQM/VqbCtQ==","signatures":[{"sig":"MEUCICyNHi0IChMdGC3LPp+xPHY7498CtH2hq68LypmUmruxAiEApAFY6ZEMOVHzdhMhpHYeZINisTshAJ2TjFYbtuNtGFQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":66276},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"030b97a5ae22d2c8175ccddcd18fff61bdcb85b4","scripts":{"lint":"biome check && npm run lint:ts","test":"vitest run","build":"vite build","lint:ts":"tsc --noEmit","lint:fix":"biome check --write"},"_npmUser":{"name":"botlokalise","email":"github@lokalise.com"},"_npmVersion":"10.8.2","description":"Minimalistic Frontegg OAuth implementation for browser applications. It offers APIs for retrieving and refreshing tokens and basic user data.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"zod":"^3.23.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.4.8","vite":"^5.4.6","jsdom":"^25.0.0","vitest":"^2.1.1","typescript":"^5.6.2","@biomejs/biome":"^1.9.1","semantic-release":"^24.1.1","@lokalise/biome-config":"^1.4.0","@lokalise/package-vite-config":"^3.1.0"},"_npmOperationalInternal":{"tmp":"tmp/frontegg-oauth-client_1.1.0_1726731657988_0.6883889668304257","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@lokalise/frontegg-oauth-client","version":"1.2.0","_id":"@lokalise/frontegg-oauth-client@1.2.0","maintainers":[{"name":"dariacm","email":"dariacmaino@gmail.com"},{"name":"forter_lokalise","email":"jevgenijs@lokalise.com"},{"name":"andrew_lokalise","email":"andrew@lokalise.com"},{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"},{"name":"kibertoad","email":"iselwin@gmail.com"},{"name":"arthuracs","email":"arthur.suermondt@lokalise.com"},{"name":"yury.kravtsov","email":"yury.kravtsov@lokalise.com"},{"name":"filippos.mikropoulos","email":"filippos.mikropoulos@lokalise.com"},{"name":"aplokalise","email":"andrei.panait@lokalise.com"},{"name":"botlokalise","email":"github@lokalise.com"},{"name":"laurislokalise","email":"lauris.mikals@lokalise.com"},{"name":"marcocardosolok","email":"marco.cardoso@lokalise.com"},{"name":"bodrovis","email":"golosizpru@gmail.com"}],"dist":{"shasum":"d1a1ce8d7ea85dd402127ed7a4ca30705ca42665","tarball":"https://registry.npmjs.org/@lokalise/frontegg-oauth-client/-/frontegg-oauth-client-1.2.0.tgz","fileCount":12,"integrity":"sha512-N+G3vJUEXGquwFmmW1sYXZcbwNUreHGbMH7DaFB10XeNQLerpEnGMz9eaHEo1YrqIK5HkJk9J940LrIre+ok/w==","signatures":[{"sig":"MEQCIG64rcWiQjHSU/Rh7wYa47Wwup4BgUZVB3DrCT3cA14DAiBFBY8YtQH2YljvDjwWwV61/lXVCRampIAkqf8z+fIJ1g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":71741},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"cc0d853d2ff37c9e05e5d61547b1c4b5252c7a9f","scripts":{"lint":"biome check && npm run lint:ts","test":"vitest run","build":"vite build","lint:ts":"tsc --noEmit","lint:fix":"biome check --write"},"_npmUser":{"name":"botlokalise","email":"github@lokalise.com"},"_npmVersion":"10.8.2","description":"Minimalistic Frontegg OAuth implementation for browser applications. It offers APIs for retrieving and refreshing tokens and basic user data.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"zod":"^3.23.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.4.13","vite":"^5.4.9","jsdom":"^25.0.1","vitest":"^2.1.3","typescript":"^5.6.3","@biomejs/biome":"^1.9.4","semantic-release":"^24.1.3","@lokalise/biome-config":"^1.5.0","@lokalise/package-vite-config":"^3.1.1"},"_npmOperationalInternal":{"tmp":"tmp/frontegg-oauth-client_1.2.0_1729671617833_0.10968651473101287","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"@lokalise/frontegg-oauth-client","version":"1.2.1","_id":"@lokalise/frontegg-oauth-client@1.2.1","maintainers":[{"name":"dariacm","email":"dariacmaino@gmail.com"},{"name":"forter_lokalise","email":"jevgenijs@lokalise.com"},{"name":"andrew_lokalise","email":"andrew@lokalise.com"},{"name":"carlos_gamero","email":"carlos.gamero@lokalise.com"},{"name":"kibertoad","email":"iselwin@gmail.com"},{"name":"arthuracs","email":"arthur.suermondt@lokalise.com"},{"name":"yury.kravtsov","email":"yury.kravtsov@lokalise.com"},{"name":"filippos.mikropoulos","email":"filippos.mikropoulos@lokalise.com"},{"name":"aplokalise","email":"andrei.panait@lokalise.com"},{"name":"botlokalise","email":"github@lokalise.com"},{"name":"laurislokalise","email":"lauris.mikals@lokalise.com"},{"name":"marcocardosolok","email":"marco.cardoso@lokalise.com"},{"name":"bodrovis","email":"golosizpru@gmail.com"}],"dist":{"shasum":"6eda56904e6a3f3fe493b1ebe4f1768292d2c8e4","tarball":"https://registry.npmjs.org/@lokalise/frontegg-oauth-client/-/frontegg-oauth-client-1.2.1.tgz","fileCount":12,"integrity":"sha512-yxTeOL3EVdCeESYl+M+Kr6A6FbXWdRPlbm9VLT6hKIi2vF4rTHYZn5vVqdZZgLn+vOOdV2yn94kSZMBRhqmlBA==","signatures":[{"sig":"MEUCIF7S624HBaMamhR18h06YVGR8hW/b+4k3OW/MGPTJmJ6AiEAmOe2XWZYbhuFQqfYDb4DmiSkbmEpl/Uh7gd6AJncXIA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":71084},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"d0e5397ae6bdac56f1f1cc7d909dee0bd7679566","scripts":{"lint":"biome check && npm run lint:ts","test":"vitest run","build":"vite build","lint:ts":"tsc --noEmit","lint:fix":"biome check --write"},"_npmUser":{"name":"botlokalise","email":"github@lokalise.com"},"_npmVersion":"10.8.2","description":"Minimalistic Frontegg OAuth implementation for browser applications. It offers APIs for retrieving and refreshing tokens and basic user data.","directories":{},"_nodeVersion":"20.18.0","dependencies":{"zod":"^3.23.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^2.5.0","vite":"^5.4.10","jsdom":"^25.0.1","vitest":"^2.1.3","typescript":"^5.6.3","@biomejs/biome":"^1.9.4","semantic-release":"^24.1.3","@lokalise/biome-config":"^1.5.0","@lokalise/package-vite-config":"^3.1.1"},"_npmOperationalInternal":{"tmp":"tmp/frontegg-oauth-client_1.2.1_1729688240238_0.9539648851802525","host":"s3://npm-registry-packages"}}},"time":{"created":"2024-07-24T12:15:51.796Z","modified":"2026-09-01T12:39:32.317Z","1.0.0":"2024-07-24T12:15:52.080Z","1.0.1":"2024-07-24T14:31:10.152Z","1.1.0":"2024-09-19T07:40:58.183Z","1.2.0":"2024-10-23T08:20:18.027Z","1.2.1":"2024-10-23T12:57:20.454Z"},"description":"Minimalistic Frontegg OAuth implementation for browser applications. It offers APIs for retrieving and refreshing tokens and basic user data.","maintainers":[{"email":"elskruk@proton.me","name":"bodrovis"},{"email":"github@lokalise.com","name":"botlokalise"},{"email":"iselwin@gmail.com","name":"kibertoad"},{"email":"carlos.gamero@lokalise.com","name":"carlos_gamero"},{"email":"andrei.panait@lokalise.com","name":"aplokalise"},{"email":"filippos.mikropoulos@lokalise.com","name":"filippos.mikropoulos"},{"email":"andrew@lokalise.com","name":"andrew_lokalise"},{"email":"dariacmaino@gmail.com","name":"dariacm"},{"email":"roger.gros@lokalise.com","name":"roger.gros-lokalise"},{"email":"mateusz.tkacz94.dev@gmail.com","name":"catchme2"},{"email":"kostiantyn.khoroshailo@lokalise.com","name":"kostiantyn.khoroshailo"},{"email":"oscar.casamitjana@lokalise.com","name":"casamitjana"},{"email":"bartosz.drozd@lokalise.com","name":"bartoszdrozd-lokalise"},{"email":"javier.hernandez@lokalise.com","name":"jhfedz"}],"readme":"# frontegg-oauth-client\n\nMinimalistic Frontegg OAuth implementation for browser applications. It offers APIs for retrieving and refreshing tokens and basic user data.\n\nThis package is an alternative to the official [@frontegg/js](https://docs.frontegg.com/docs/vanilla-js) package. \n\n## Installation\n\nUse the package manager npm to install the library.\n\n```bash\nnpm install @lokalise/frontegg-oauth-client\n```\n\n## Usage\n\nThe library offers several APIs to initiate the OAuth flow and retrieve user data.\n\n```js\n// Create client instance\nconst client = new FronteggOAuthClient({\n    baseUrl: 'https://frontegg-custom-url.com',\n    clientId: 'CLIENT_ID',\n    redirectUri: `${window.location.origin}/oauth/callback`,\n    logoutRedirectUri: window.location.origin,\n})\n\ntry {\n    // Retrieve user\n    const user = await client.getUserData();\n\n    // Retrieve token \n    const accessToken = user.accessToken;\n} catch (error) {\n    // In case we receive a 401 Unauthorized error, we need to redirect the user to the login page.\n    if (error instanceof FronteggError && error.status === 401) {\n        // Retrieve login URL\n        const loginUrl = await client.getOAuthLoginUrl() \n        \n        // Redirect to Frontegg login page\n        window.location.href = loginUrl;\n        return;\n    }\n    \n    // Rethrow unknown error.\n    throw error\n}\n```\n\nYou also need to set up the OAuth callback path in your browser app. For that, we use the same client instance as in the code above.\n\n```js\n// OAuth callback app - usually /oauth/callback URL\nconst handleRequest = async (request: Request) => {\n    const oauthCode = new URL(request.url).searchParams.get('code')\n\n    if (!oauthCode) {\n        throw new Error('Missing oauth code');\n    }\n\n    // After successful login, the client can retrieve \n    // the access token through the OAuth code.\n    await client.fetchAccessTokenByOAuthCode(oauthCode)\n    \n    \n    // Redirect the user to the main app\n    window.location.href = '/';\n}\n```\n\n## Credits\n\nThis library is brought to you by a joint effort of Lokalise engineers:\n\n- [Arthur Suermondt](https://github.com/arthuracs)\n- [Szymon Chudy](https://github.com/szymonchudy)\n- [Ondrej Sevcik](https://github.com/ondrejsevcik)\n\n\n","readmeFilename":"README.md"}