From 39c3055a86769478faaec92e79d1cd8dc35045dc Mon Sep 17 00:00:00 2001 From: 3nethz Date: Mon, 24 Mar 2025 15:46:23 +0530 Subject: [PATCH 1/7] chore(vue): change package.json and eslint config --- packages/vue/.eslintrc.cjs | 1 - packages/vue/package.json | 5 ++--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/vue/.eslintrc.cjs b/packages/vue/.eslintrc.cjs index af0993f2..263ac8e9 100644 --- a/packages/vue/.eslintrc.cjs +++ b/packages/vue/.eslintrc.cjs @@ -21,7 +21,6 @@ const path = require('path'); module.exports = { extends: [ 'plugin:@wso2/typescript', - // 'plugin:@wso2/vue', 'plugin:@wso2/strict', 'plugin:@wso2/internal', 'plugin:@wso2/prettier', diff --git a/packages/vue/package.json b/packages/vue/package.json index 8e29a4e7..7cd1e165 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -39,9 +39,8 @@ "dev": "rollup -c -w", "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts", "lint:fix": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix", - "type-check": "vue-tsc --noEmit", - "test": "vitest --config src/vitest.config.ts --environment=jsdom --run --passWithNoTests", - "prepublishOnly": "npm run build" + "typecheck": "vue-tsc --noEmit", + "test": "vitest --config src/vitest.config.ts --environment=jsdom --run --passWithNoTests" }, "publishConfig": { "access": "public" From ee522fb2e07921d97a5822a3116a4b9d7963be51 Mon Sep 17 00:00:00 2001 From: 3nethz Date: Tue, 25 Mar 2025 21:40:02 +0530 Subject: [PATCH 2/7] feat(vue): refactor api.ts to auth-api.ts --- packages/vue/src/{api.ts => auth-api.ts} | 0 packages/vue/src/plugins/AsgardeoPlugin.ts | 2 +- packages/vue/src/tests/{api.test.ts => auth-api.test.ts} | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename packages/vue/src/{api.ts => auth-api.ts} (100%) rename packages/vue/src/tests/{api.test.ts => auth-api.test.ts} (99%) diff --git a/packages/vue/src/api.ts b/packages/vue/src/auth-api.ts similarity index 100% rename from packages/vue/src/api.ts rename to packages/vue/src/auth-api.ts diff --git a/packages/vue/src/plugins/AsgardeoPlugin.ts b/packages/vue/src/plugins/AsgardeoPlugin.ts index 6a29de0f..85879082 100644 --- a/packages/vue/src/plugins/AsgardeoPlugin.ts +++ b/packages/vue/src/plugins/AsgardeoPlugin.ts @@ -34,7 +34,7 @@ import { } from '@asgardeo/auth-spa'; import type {Plugin, Ref, App, Reactive} from 'vue'; import {reactive, ref} from 'vue'; -import AuthAPI from '../api'; +import AuthAPI from '../auth-api'; import type {AuthContextInterface, AuthParams, AuthStateInterface, AuthVueConfig} from '../types'; export type AsgardeoPluginOptions = AuthVueConfig; diff --git a/packages/vue/src/tests/api.test.ts b/packages/vue/src/tests/auth-api.test.ts similarity index 99% rename from packages/vue/src/tests/api.test.ts rename to packages/vue/src/tests/auth-api.test.ts index 5372c256..f842536d 100644 --- a/packages/vue/src/tests/api.test.ts +++ b/packages/vue/src/tests/auth-api.test.ts @@ -31,7 +31,7 @@ import { } from '@asgardeo/auth-spa'; import {describe, it, expect, beforeEach, vi, Mock} from 'vitest'; import {MockAsgardeoAuthException, asgardeoAuthSPAMock} from './mocks/mocks'; -import AuthAPI from '../api'; +import AuthAPI from '../auth-api'; import {type AuthStateInterface, type AuthVueConfig} from '../types'; vi.doMock('@asgardeo/auth-spa', () => asgardeoAuthSPAMock); From aee7bbf5698aa22e8832dc252d003b791a315138 Mon Sep 17 00:00:00 2001 From: 3nethz Date: Tue, 25 Mar 2025 21:40:28 +0530 Subject: [PATCH 3/7] feat(vue): add auth-guard for protected routes --- packages/vue/package.json | 9 ++--- packages/vue/src/auth-guard.ts | 61 ++++++++++++++++++++++++++++++++++ pnpm-lock.yaml | 3 ++ 3 files changed, 69 insertions(+), 4 deletions(-) create mode 100644 packages/vue/src/auth-guard.ts diff --git a/packages/vue/package.json b/packages/vue/package.json index 7cd1e165..1c6d73ca 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -69,19 +69,20 @@ "stylelint": "15.1.0", "tslib": "^2.6.2", "typescript": "5.1.6", - "vue-tsc": "^2.2.2", - "vitest": "^3.0.8" + "vitest": "^3.0.8", + "vue-router": "^4.5.0", + "vue-tsc": "^2.2.2" }, "dependencies": { "@asgardeo/auth-spa": "^3.1.4", "@asgardeo/js": "*", + "@vitejs/plugin-vue": "^5.0.0", "base64url": "^3.0.1", "buffer": "^6.0.3", "clsx": "^2.1.1", "fast-sha256": "^1.3.0", "jose": "^5.3.0", - "randombytes": "^2.1.0", - "@vitejs/plugin-vue": "^5.0.0" + "randombytes": "^2.1.0" }, "peerDependencies": { "vue": ">=3.5.13" diff --git a/packages/vue/src/auth-guard.ts b/packages/vue/src/auth-guard.ts new file mode 100644 index 00000000..08937cdf --- /dev/null +++ b/packages/vue/src/auth-guard.ts @@ -0,0 +1,61 @@ +import {NavigationGuardNext, RouteLocationNormalized} from 'vue-router'; +import {useAsgardeo} from './public-api'; + +/** + * createAuthGuard returns a Vue Router navigation guard that checks if the user is authenticated. + * If not, it redirects to the specified login route. + * + * @param redirectPath - The path to redirect to if the user is not authenticated. + * @returns A navigation guard function. + */ +export const createAuthGuard = (redirectPath: string = '/login') => { + return async (to: RouteLocationNormalized, from: RouteLocationNormalized, next: NavigationGuardNext) => { + try { + const { + state: {isAuthenticated}, + } = useAsgardeo(); + if (isAuthenticated) { + next(); + } else { + next(redirectPath); + } + } catch (err) { + // In case of an error, redirect to the login page. + next(redirectPath); + } + }; +}; + +/** + * authGuard is a default guard that can be directly used in your route definitions. + * It uses the createAuthGuard helper with a default redirect path. + */ +export const authGuard = createAuthGuard(); + +// example usage + +// import { createRouter, createWebHistory } from 'vue-router'; +// import { authGuard } from './auth-guard'; +// import Home from './views/Home.vue'; +// import Login from './views/Login.vue'; + +// const routes = [ +// { +// path: '/', +// name: 'Home', +// component: Home, +// beforeEnter: authGuard, // Protect this route +// }, +// { +// path: '/login', +// name: 'Login', +// component: Login, +// }, +// ]; + +// const router = createRouter({ +// history: createWebHistory(process.env.BASE_URL), +// routes, +// }); + +// export default router; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0b253c74..4b025917 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -317,6 +317,9 @@ importers: vitest: specifier: ^3.0.8 version: 3.0.8(@types/node@20.17.24)(jiti@2.4.2)(jsdom@26.0.0)(sass@1.85.1) + vue-router: + specifier: ^4.5.0 + version: 4.5.0(vue@3.5.13(typescript@5.1.6)) vue-tsc: specifier: ^2.2.2 version: 2.2.8(typescript@5.1.6) From 52ce7935bae3faea51dc1da2922acefc3cf15c0d Mon Sep 17 00:00:00 2001 From: 3nethz Date: Wed, 26 Mar 2025 10:19:46 +0530 Subject: [PATCH 4/7] feat(vue): configure wrong paths --- packages/vue/src/auth-guard.ts | 5 ++--- packages/vue/src/tests/AsgardeoPlugin.test.ts | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/vue/src/auth-guard.ts b/packages/vue/src/auth-guard.ts index 08937cdf..454f4b8d 100644 --- a/packages/vue/src/auth-guard.ts +++ b/packages/vue/src/auth-guard.ts @@ -30,12 +30,11 @@ export const createAuthGuard = (redirectPath: string = '/login') => { * authGuard is a default guard that can be directly used in your route definitions. * It uses the createAuthGuard helper with a default redirect path. */ -export const authGuard = createAuthGuard(); // example usage // import { createRouter, createWebHistory } from 'vue-router'; -// import { authGuard } from './auth-guard'; +// import { createAuthGuard } from './auth-guard'; // import Home from './views/Home.vue'; // import Login from './views/Login.vue'; @@ -44,7 +43,7 @@ export const authGuard = createAuthGuard(); // path: '/', // name: 'Home', // component: Home, -// beforeEnter: authGuard, // Protect this route +// beforeEnter: createAuthGuard(), // Protect this route // }, // { // path: '/login', diff --git a/packages/vue/src/tests/AsgardeoPlugin.test.ts b/packages/vue/src/tests/AsgardeoPlugin.test.ts index 96ba7965..5879c6f8 100644 --- a/packages/vue/src/tests/AsgardeoPlugin.test.ts +++ b/packages/vue/src/tests/AsgardeoPlugin.test.ts @@ -29,11 +29,11 @@ import { import {describe, it, expect, beforeEach, vi, Mock} from 'vitest'; import {createApp} from 'vue'; import {mockAuthAPI, mockState, mockConfig} from './mocks/mocks'; -import AuthAPI from '../api'; +import AuthAPI from '../auth-api'; import {asgardeoPlugin, ASGARDEO_INJECTION_KEY} from '../plugins/AsgardeoPlugin'; import {AuthContextInterface, AuthStateInterface} from '../types'; -vi.mock('../api'); +vi.mock('../auth-api'); vi.mock('@asgardeo/auth-spa'); vi.mocked(AuthAPI).mockImplementation(() => mockAuthAPI as unknown as AuthAPI); From bb5629812417610e344f0a4772b435ed4d3c63c1 Mon Sep 17 00:00:00 2001 From: 3nethz Date: Wed, 26 Mar 2025 10:20:17 +0530 Subject: [PATCH 5/7] feat(vue): update dependancies and fix lint issues --- packages/vue/.eslintrc.cjs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/packages/vue/.eslintrc.cjs b/packages/vue/.eslintrc.cjs index 263ac8e9..05b784cc 100644 --- a/packages/vue/.eslintrc.cjs +++ b/packages/vue/.eslintrc.cjs @@ -19,12 +19,7 @@ const path = require('path'); module.exports = { - extends: [ - 'plugin:@wso2/typescript', - 'plugin:@wso2/strict', - 'plugin:@wso2/internal', - 'plugin:@wso2/prettier', - ], + extends: ['plugin:@wso2/typescript', 'plugin:@wso2/strict', 'plugin:@wso2/internal', 'plugin:@wso2/prettier'], parserOptions: { project: [path.resolve(__dirname, 'tsconfig.json'), path.resolve(__dirname, 'tsconfig.eslint.json')], }, From f1a6801ceab0bd301018ece3e21081cf7280f531 Mon Sep 17 00:00:00 2001 From: 3nethz Date: Wed, 26 Mar 2025 10:20:31 +0530 Subject: [PATCH 6/7] feat(vue): update dependancies and fix lint issues --- pnpm-lock.yaml | 44 ++++++++++++++++++++++---------------------- pnpm-workspace.yaml | 6 +++--- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4b025917..f7dde108 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,13 +7,13 @@ settings: catalogs: default: '@wso2/eslint-plugin': - specifier: https://gitpkg.now.sh/brionmario/wso2-ui-configs/packages/eslint-plugin?21281faa4f8354491747075f40f58b497d0c4730 + specifier: https://gitpkg.now.sh/brionmario/wso2-ui-configs/packages/eslint-plugin?4ee6f6be232d7631999d709a86b91612f1d34ce7 version: 0.1.0 '@wso2/prettier-config': - specifier: https://gitpkg.now.sh/brionmario/wso2-ui-configs/packages/prettier-config?21281faa4f8354491747075f40f58b497d0c4730 + specifier: https://gitpkg.now.sh/brionmario/wso2-ui-configs/packages/prettier-config?4ee6f6be232d7631999d709a86b91612f1d34ce7 version: 0.1.0 '@wso2/stylelint-config': - specifier: https://gitpkg.now.sh/brionmario/wso2-ui-configs/packages/stylelint-config?21281faa4f8354491747075f40f58b497d0c4730 + specifier: https://gitpkg.now.sh/brionmario/wso2-ui-configs/packages/stylelint-config?4ee6f6be232d7631999d709a86b91612f1d34ce7 version: 0.1.0 eslint: specifier: ~8.57.0 @@ -31,10 +31,10 @@ importers: version: 2.28.1 '@wso2/eslint-plugin': specifier: 'catalog:' - version: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/eslint-plugin?21281faa4f8354491747075f40f58b497d0c4730(eslint@8.57.1)(typescript@5.1.6) + version: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/eslint-plugin?4ee6f6be232d7631999d709a86b91612f1d34ce7(eslint@8.57.1)(typescript@5.1.6) '@wso2/prettier-config': specifier: 'catalog:' - version: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/prettier-config?21281faa4f8354491747075f40f58b497d0c4730(prettier@3.5.3)(typescript@5.1.6) + version: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/prettier-config?4ee6f6be232d7631999d709a86b91612f1d34ce7(prettier@3.5.3)(typescript@5.1.6) eslint: specifier: 'catalog:' version: 8.57.1 @@ -92,10 +92,10 @@ importers: version: 20.17.24 '@wso2/eslint-plugin': specifier: 'catalog:' - version: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/eslint-plugin?21281faa4f8354491747075f40f58b497d0c4730(eslint@8.57.1)(typescript@5.1.6) + version: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/eslint-plugin?4ee6f6be232d7631999d709a86b91612f1d34ce7(eslint@8.57.1)(typescript@5.1.6) '@wso2/prettier-config': specifier: 'catalog:' - version: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/prettier-config?21281faa4f8354491747075f40f58b497d0c4730(prettier@3.5.3)(typescript@5.1.6) + version: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/prettier-config?4ee6f6be232d7631999d709a86b91612f1d34ce7(prettier@3.5.3)(typescript@5.1.6) eslint: specifier: 'catalog:' version: 8.57.1 @@ -168,13 +168,13 @@ importers: version: 18.3.5(@types/react@18.3.18) '@wso2/eslint-plugin': specifier: 'catalog:' - version: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/eslint-plugin?21281faa4f8354491747075f40f58b497d0c4730(eslint@8.57.1)(typescript@5.1.6) + version: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/eslint-plugin?4ee6f6be232d7631999d709a86b91612f1d34ce7(eslint@8.57.1)(typescript@5.1.6) '@wso2/prettier-config': specifier: 'catalog:' - version: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/prettier-config?21281faa4f8354491747075f40f58b497d0c4730(prettier@3.5.3)(typescript@5.1.6) + version: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/prettier-config?4ee6f6be232d7631999d709a86b91612f1d34ce7(prettier@3.5.3)(typescript@5.1.6) '@wso2/stylelint-config': specifier: 'catalog:' - version: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/stylelint-config?21281faa4f8354491747075f40f58b497d0c4730(postcss@8.5.3)(stylelint@15.1.0(typescript@5.1.6))(typescript@5.1.6) + version: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/stylelint-config?4ee6f6be232d7631999d709a86b91612f1d34ce7(postcss@8.5.3)(stylelint@15.1.0(typescript@5.1.6))(typescript@5.1.6) eslint: specifier: 'catalog:' version: 8.57.1 @@ -277,13 +277,13 @@ importers: version: 2.4.6 '@wso2/eslint-plugin': specifier: 'catalog:' - version: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/eslint-plugin?21281faa4f8354491747075f40f58b497d0c4730(eslint@8.57.1)(typescript@5.1.6) + version: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/eslint-plugin?4ee6f6be232d7631999d709a86b91612f1d34ce7(eslint@8.57.1)(typescript@5.1.6) '@wso2/prettier-config': specifier: 'catalog:' - version: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/prettier-config?21281faa4f8354491747075f40f58b497d0c4730(prettier@3.5.3)(typescript@5.1.6) + version: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/prettier-config?4ee6f6be232d7631999d709a86b91612f1d34ce7(prettier@3.5.3)(typescript@5.1.6) '@wso2/stylelint-config': specifier: 'catalog:' - version: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/stylelint-config?21281faa4f8354491747075f40f58b497d0c4730(postcss@8.5.3)(stylelint@15.1.0(typescript@5.1.6))(typescript@5.1.6) + version: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/stylelint-config?4ee6f6be232d7631999d709a86b91612f1d34ce7(postcss@8.5.3)(stylelint@15.1.0(typescript@5.1.6))(typescript@5.1.6) eslint: specifier: 'catalog:' version: 8.57.1 @@ -2417,8 +2417,8 @@ packages: '@vueuse/shared@12.8.2': resolution: {integrity: sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==} - '@wso2/eslint-plugin@https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/eslint-plugin?21281faa4f8354491747075f40f58b497d0c4730': - resolution: {tarball: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/eslint-plugin?21281faa4f8354491747075f40f58b497d0c4730} + '@wso2/eslint-plugin@https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/eslint-plugin?4ee6f6be232d7631999d709a86b91612f1d34ce7': + resolution: {tarball: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/eslint-plugin?4ee6f6be232d7631999d709a86b91612f1d34ce7} version: 0.1.0 engines: {node: ^14.17.0 || ^16.0.0 || >= 18.0.0} peerDependencies: @@ -2428,8 +2428,8 @@ packages: typescript: optional: true - '@wso2/prettier-config@https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/prettier-config?21281faa4f8354491747075f40f58b497d0c4730': - resolution: {tarball: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/prettier-config?21281faa4f8354491747075f40f58b497d0c4730} + '@wso2/prettier-config@https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/prettier-config?4ee6f6be232d7631999d709a86b91612f1d34ce7': + resolution: {tarball: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/prettier-config?4ee6f6be232d7631999d709a86b91612f1d34ce7} version: 0.1.0 engines: {node: '>=14.0.0'} peerDependencies: @@ -2439,8 +2439,8 @@ packages: typescript: optional: true - '@wso2/stylelint-config@https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/stylelint-config?21281faa4f8354491747075f40f58b497d0c4730': - resolution: {tarball: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/stylelint-config?21281faa4f8354491747075f40f58b497d0c4730} + '@wso2/stylelint-config@https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/stylelint-config?4ee6f6be232d7631999d709a86b91612f1d34ce7': + resolution: {tarball: https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/stylelint-config?4ee6f6be232d7631999d709a86b91612f1d34ce7} version: 0.1.0 engines: {node: '>=14.0.0'} peerDependencies: @@ -8357,7 +8357,7 @@ snapshots: transitivePeerDependencies: - typescript - '@wso2/eslint-plugin@https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/eslint-plugin?21281faa4f8354491747075f40f58b497d0c4730(eslint@8.57.1)(typescript@5.1.6)': + '@wso2/eslint-plugin@https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/eslint-plugin?4ee6f6be232d7631999d709a86b91612f1d34ce7(eslint@8.57.1)(typescript@5.1.6)': dependencies: '@babel/core': 7.26.10 '@babel/eslint-parser': 7.26.10(@babel/core@7.26.10)(eslint@8.57.1) @@ -8391,13 +8391,13 @@ snapshots: - jest - supports-color - '@wso2/prettier-config@https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/prettier-config?21281faa4f8354491747075f40f58b497d0c4730(prettier@3.5.3)(typescript@5.1.6)': + '@wso2/prettier-config@https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/prettier-config?4ee6f6be232d7631999d709a86b91612f1d34ce7(prettier@3.5.3)(typescript@5.1.6)': dependencies: prettier: 3.5.3 optionalDependencies: typescript: 5.1.6 - '@wso2/stylelint-config@https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/stylelint-config?21281faa4f8354491747075f40f58b497d0c4730(postcss@8.5.3)(stylelint@15.1.0(typescript@5.1.6))(typescript@5.1.6)': + '@wso2/stylelint-config@https://gitpkg.vercel.app/brionmario/wso2-ui-configs/packages/stylelint-config?4ee6f6be232d7631999d709a86b91612f1d34ce7(postcss@8.5.3)(stylelint@15.1.0(typescript@5.1.6))(typescript@5.1.6)': dependencies: postcss-scss: 4.0.9(postcss@8.5.3) stylelint: 15.1.0(typescript@5.1.6) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 7ae806e4..c517cb08 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -4,7 +4,7 @@ packages: - "recipes/*" catalog: - "@wso2/eslint-plugin": "https://gitpkg.now.sh/brionmario/wso2-ui-configs/packages/eslint-plugin?21281faa4f8354491747075f40f58b497d0c4730" - "@wso2/prettier-config": "https://gitpkg.now.sh/brionmario/wso2-ui-configs/packages/prettier-config?21281faa4f8354491747075f40f58b497d0c4730" - "@wso2/stylelint-config": "https://gitpkg.now.sh/brionmario/wso2-ui-configs/packages/stylelint-config?21281faa4f8354491747075f40f58b497d0c4730" + "@wso2/eslint-plugin": "https://gitpkg.now.sh/brionmario/wso2-ui-configs/packages/eslint-plugin?4ee6f6be232d7631999d709a86b91612f1d34ce7" + "@wso2/prettier-config": "https://gitpkg.now.sh/brionmario/wso2-ui-configs/packages/prettier-config?4ee6f6be232d7631999d709a86b91612f1d34ce7" + "@wso2/stylelint-config": "https://gitpkg.now.sh/brionmario/wso2-ui-configs/packages/stylelint-config?4ee6f6be232d7631999d709a86b91612f1d34ce7" "eslint": "~8.57.0" \ No newline at end of file From 95103e9383c134e9561f74606932c8f2f865d0e1 Mon Sep 17 00:00:00 2001 From: 3nethz Date: Thu, 27 Mar 2025 16:47:49 +0530 Subject: [PATCH 7/7] feat(vue): update file names --- packages/vue/package.json | 1 - packages/vue/src/auth-guard.ts | 60 ---------------------------------- pnpm-lock.yaml | 3 -- 3 files changed, 64 deletions(-) delete mode 100644 packages/vue/src/auth-guard.ts diff --git a/packages/vue/package.json b/packages/vue/package.json index 1c6d73ca..3a752cb0 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -70,7 +70,6 @@ "tslib": "^2.6.2", "typescript": "5.1.6", "vitest": "^3.0.8", - "vue-router": "^4.5.0", "vue-tsc": "^2.2.2" }, "dependencies": { diff --git a/packages/vue/src/auth-guard.ts b/packages/vue/src/auth-guard.ts deleted file mode 100644 index 454f4b8d..00000000 --- a/packages/vue/src/auth-guard.ts +++ /dev/null @@ -1,60 +0,0 @@ -import {NavigationGuardNext, RouteLocationNormalized} from 'vue-router'; -import {useAsgardeo} from './public-api'; - -/** - * createAuthGuard returns a Vue Router navigation guard that checks if the user is authenticated. - * If not, it redirects to the specified login route. - * - * @param redirectPath - The path to redirect to if the user is not authenticated. - * @returns A navigation guard function. - */ -export const createAuthGuard = (redirectPath: string = '/login') => { - return async (to: RouteLocationNormalized, from: RouteLocationNormalized, next: NavigationGuardNext) => { - try { - const { - state: {isAuthenticated}, - } = useAsgardeo(); - if (isAuthenticated) { - next(); - } else { - next(redirectPath); - } - } catch (err) { - // In case of an error, redirect to the login page. - next(redirectPath); - } - }; -}; - -/** - * authGuard is a default guard that can be directly used in your route definitions. - * It uses the createAuthGuard helper with a default redirect path. - */ - -// example usage - -// import { createRouter, createWebHistory } from 'vue-router'; -// import { createAuthGuard } from './auth-guard'; -// import Home from './views/Home.vue'; -// import Login from './views/Login.vue'; - -// const routes = [ -// { -// path: '/', -// name: 'Home', -// component: Home, -// beforeEnter: createAuthGuard(), // Protect this route -// }, -// { -// path: '/login', -// name: 'Login', -// component: Login, -// }, -// ]; - -// const router = createRouter({ -// history: createWebHistory(process.env.BASE_URL), -// routes, -// }); - -// export default router; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f7dde108..007e1793 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -317,9 +317,6 @@ importers: vitest: specifier: ^3.0.8 version: 3.0.8(@types/node@20.17.24)(jiti@2.4.2)(jsdom@26.0.0)(sass@1.85.1) - vue-router: - specifier: ^4.5.0 - version: 4.5.0(vue@3.5.13(typescript@5.1.6)) vue-tsc: specifier: ^2.2.2 version: 2.2.8(typescript@5.1.6)