Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
cda7f47
Add new Nuxt SDK and Playground sample application
kavindadimuthu Apr 22, 2026
67ded27
Enhance Asgardeo integration with route protection and session manage…
kavindadimuthu Apr 22, 2026
3b56e85
Add unit tests for Asgardeo middleware, error codes, route matcher, s…
kavindadimuthu Apr 22, 2026
a773a01
Refactor Asgardeo Nuxt SDK Playground with authentication examples
kavindadimuthu Apr 22, 2026
6f69054
Refactor Asgardeo client integration and enhance session management
kavindadimuthu Apr 23, 2026
a776f28
Enhance Asgardeo Nuxt integration with SSR support and user organizat…
kavindadimuthu Apr 23, 2026
847fd00
Enhance AsgardeoPlugin installation with style injection for SSR comp…
kavindadimuthu Apr 23, 2026
a38611e
Add Nuxt-specific components for Asgardeo integration
kavindadimuthu Apr 23, 2026
a7f86ce
Add unit tests for AsgardeoRoot and Asgardeo SSR plugin
kavindadimuthu Apr 23, 2026
6f3fb39
Add new nuxtjs sdk playground
kavindadimuthu Apr 23, 2026
f7dadb8
Refactor auth middleware to use defineAsgardeoMiddleware for improved…
kavindadimuthu Apr 23, 2026
114269b
Remove old auth-state server plugin and rename auth-state plugin refe…
kavindadimuthu Apr 23, 2026
846d95c
Implement session rehydration and verification for improved authentic…
kavindadimuthu Apr 23, 2026
549daab
Group components properly in Nuxt sdk
kavindadimuthu Apr 24, 2026
03169a1
Refactor nuxt sdk routes and implement routes for organization manage…
kavindadimuthu Apr 24, 2026
03a6f6a
Add SDK routes for user and organization management in nuxtjs sdk pla…
kavindadimuthu Apr 24, 2026
9a6ac07
Add user profile patching and user fetching pages
kavindadimuthu Apr 24, 2026
cff1e82
Remove Nuxt SDK playground sample files and configuration
kavindadimuthu Apr 24, 2026
ba3dbe0
Rename playground tools to tools and update related routes
kavindadimuthu Apr 24, 2026
6c515eb
Refactor utilities and types in Asgardeo Nuxt module; consolidate exp…
kavindadimuthu Apr 24, 2026
450dfca
Refactor nuxtjs sdk playground application to properly showcase nuxt …
kavindadimuthu Apr 24, 2026
f70fc2d
Fix issue in sidebar of nuxtjs sdk playground and a test page
kavindadimuthu Apr 25, 2026
cbfe032
Enhance user profile update functionality and schema handling in Asga…
kavindadimuthu Apr 25, 2026
0223344
Add V1 and V2 sign-up components with support for embedded flows
kavindadimuthu Apr 26, 2026
1907422
Add token debugger and config inspector as playground internal tools …
kavindadimuthu Apr 26, 2026
acd5dbf
Refactor server utilities and add require-session functionality in Nu…
kavindadimuthu Apr 26, 2026
9e379a6
Create a dedicated playgrounds directory
kavindadimuthu Apr 26, 2026
fb73bb4
Fix theme mode handling issue by synchronizing html attributes with p…
kavindadimuthu Apr 26, 2026
ed45565
Redesign composable view to enhance state inspection and function exe…
kavindadimuthu Apr 26, 2026
956d75c
Rename playground applications
kavindadimuthu Apr 26, 2026
62da9bd
Add environment configuration examples and gitignore files for Nuxt a…
kavindadimuthu Apr 26, 2026
a2810b5
Add Nuxt SDK sample application with user authentication, protected r…
kavindadimuthu Apr 26, 2026
90bbc74
Add component card, tab navigation, and preview components
kavindadimuthu Apr 26, 2026
8a63f4a
Refactor user component and remove auto-import badges
kavindadimuthu Apr 27, 2026
6532d5c
Add vue typescript check for nuxt playground
kavindadimuthu Apr 27, 2026
4fdc27f
Refactor AsgardeoPlugin for improved type definitions and formatting
kavindadimuthu Apr 27, 2026
8720d87
Refactor config merging logic for clarity and improved structure
kavindadimuthu Apr 27, 2026
53f2e76
Remove the Nuxt.js SDK implementation plan documents
kavindadimuthu Apr 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
"build": "nx run-many --target=build --all",
"build:packages": "nx run-many --target=build --projects=packages/*",
"build:samples": "nx run-many --target=build --projects=samples/*",
"build:playgrounds": "nx run-many --target=build --projects=playgrounds/*",
"fix:lint": "nx run-many --target=fix:lint --all --parallel",
"lint": "nx run-many --target=lint --all --parallel",
"publish:packages": "changeset publish",
Expand Down
7 changes: 6 additions & 1 deletion packages/javascript/src/api/updateMeProfile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import AsgardeoAPIError from '../errors/AsgardeoAPIError';
import {User} from '../models/user';
import processUserUsername from '../utils/processUsername';

/**
* Configuration for the updateMeProfile request
Expand Down Expand Up @@ -141,7 +142,11 @@ const updateMeProfile = async ({
);
}

return (await response.json()) as User;
// Match the read path (`getScim2Me`) — strip the userstore prefix
// (e.g. "DEFAULT/") so consumers receive a clean `userName`. Without
// this, the optimistic-update path would put the prefixed value into
// local state and the UI would flip to "DEFAULT/<email>" after a save.
return processUserUsername((await response.json()) as User);
} catch (error) {
if (error instanceof AsgardeoAPIError) {
throw error;
Expand Down
20 changes: 20 additions & 0 deletions packages/javascript/src/utils/generateFlattenedUserProfile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,26 @@ const generateFlattenedUserProfile = (meResponse: any, processedSchemas: any[]):

let value: any = get(meResponse, name);

// SCIM2 multi-valued complex attributes (phoneNumbers, emails, ims, ...)
// are stored as arrays of typed objects: [{type: "mobile", value: "..."}].
// The schema flattens them as `<attr>.<type>` (e.g. "phoneNumbers.mobile"),
// so when the dotted lookup misses, fall back to filtering the array by
// `type` and reading `.value`.
if (value === undefined) {
const dotIndex: number = name.indexOf('.');
if (dotIndex > 0) {
const head: string = name.slice(0, dotIndex);
const tail: string = name.slice(dotIndex + 1);
const arr: any = meResponse[head];
if (Array.isArray(arr)) {
const match: any = arr.find((item: any) => item && item.type === tail);
if (match && match.value !== undefined) {
value = match.value;
}
}
}
}

// If value not found at top level, check within schema namespaces
if (value === undefined) {
const schemaNamespaces: string[] = [
Expand Down
Loading
Loading