@deliverart/sdk-js-user
User management package for the DeliverArt JavaScript SDK.
Installation
npm install @deliverart/sdk-js-user @deliverart/sdk-js-core
Exported Types
Core Types
User- User informationUserDetails- Extended user with roles and permissionsUserRole- User role type
User Role Types
type UserRole =
| 'ROLE_ADMIN'
| 'ROLE_COMPANY_ADMIN'
| 'ROLE_MANAGER'
| 'ROLE_STAFF'
| 'ROLE_DRIVER'
| 'ROLE_CUSTOMER'
| 'ROLE_ECOMMERCE_CUSTOMER'
IRI Types
UserIri- User IRI (/users/:id)
Available Requests
CreateUser
import { CreateUser } from '@deliverart/sdk-js-user';
const user = await sdk.call(new CreateUser({
email: '[email protected]',
password: 'securePassword123',
firstName: 'John',
lastName: 'Doe',
roles: ['ROLE_STAFF'],
company: '/companies/123'
}));
Input Parameters:
email: string(required) - Email addresspassword: string(required) - PasswordfirstName: string(required) - First namelastName: string(required) - Last nameroles: UserRole[](required) - User rolescompany?: string(optional) - Company IRIphoneNumber?: string(optional) - Phone number
GetUsers
import { GetUsers } from '@deliverart/sdk-js-user';
const users = await sdk.call(new GetUsers({
query: {
'roles[]': ['ROLE_STAFF', 'ROLE_MANAGER'],
company: '/companies/123',
page: 1
}
}));
Query Parameters:
email?: string- Filter by emailroles[]?: UserRole[]- Filter by rolescompany?: string- Filter by companypage?: number- Page number
GetUserDetails
import { GetUserDetails } from '@deliverart/sdk-js-user';
const user = await sdk.call(new GetUserDetails('user-123'));
UpdateUser
import { UpdateUser } from '@deliverart/sdk-js-user';
const updated = await sdk.call(new UpdateUser('user-123', {
firstName: 'Jane',
roles: ['ROLE_MANAGER']
}));
DeleteUser
import { DeleteUser } from '@deliverart/sdk-js-user';
await sdk.call(new DeleteUser('user-123'));
Current User Email Verification
import {
SendCurrentUserEmailVerificationCode,
VerifyCurrentUserEmailVerificationCode
} from '@deliverart/sdk-js-user';
await sdk.call(new SendCurrentUserEmailVerificationCode());
const status = await sdk.call(new VerifyCurrentUserEmailVerificationCode({
code: '123456'
}));
Use these requests for first-party ecommerce customer accounts. The API sends a six-digit email code and returns the verification status, cooldown, expiry, and remaining attempts.
For pending ecommerce registrations that are not logged in yet, call the email-scoped requests with a server-side registration token. Do this only from a backend/BFF boundary; the registration token must never be exposed to browser code:
import {
SendEmailVerificationCodeByEmail,
VerifyEmailVerificationCodeByEmail
} from '@deliverart/sdk-js-user';
await sdk.call(new SendEmailVerificationCodeByEmail({
email: '[email protected]'
}));
const status = await sdk.call(new VerifyEmailVerificationCodeByEmail({
email: '[email protected]',
code: '123456'
}));
Complete Usage Example
import { sdk } from './lib/sdk';
import { CreateUser, GetUsers, UpdateUser } from '@deliverart/sdk-js-user';
async function userManagement() {
// Create staff user
const staff = await sdk.call(new CreateUser({
email: '[email protected]',
password: 'tempPassword123',
firstName: 'Mario',
lastName: 'Rossi',
roles: ['ROLE_STAFF'],
company: '/companies/123',
phoneNumber: '+39123456789'
}));
// Get all staff members
const staffMembers = await sdk.call(new GetUsers({
query: {
'roles[]': ['ROLE_STAFF'],
company: '/companies/123'
}
}));
// Promote to manager
await sdk.call(new UpdateUser(staff.id, {
roles: ['ROLE_MANAGER']
}));
}
License
MIT
Administrative email verification
Super admins can call sdk.call(new SetUserEmailVerification(userId, true)) to verify an existing account (or pass false to revoke verification) without an email link. The idempotent operation returns the updated user, synchronizes verification steps, clears pending email codes, and preserves roles and suspension. Generic CreateUser/UpdateUser payloads do not accept emailVerified.