@ackplus/nest-auth-client 2.0.4 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,63 @@
1
+ import { ILoginRequest, IAuthResponse } from '@ackplus/nest-auth-contracts';
2
+ import { AuthClientConfig, StorageAdapter, RequestOptions, GetAuthHeadersOptions } from '../types/config.types';
3
+ import { AuthClient } from '../client/auth-client';
4
+ export interface AccountSnapshot {
5
+ accountId: string;
6
+ userId?: string;
7
+ tenantId?: string;
8
+ email?: string;
9
+ label?: string;
10
+ isActive: boolean;
11
+ }
12
+ export interface IAccountSwitcher {
13
+ ready(): Promise<void>;
14
+ listAccounts(): AccountSnapshot[];
15
+ getActiveAccountId(): string | null;
16
+ getActiveClient(): AuthClient | null;
17
+ addAccount(dto: ILoginRequest): Promise<AccountSnapshot>;
18
+ switchAccount(accountId: string): Promise<AccountSnapshot>;
19
+ removeAccount(accountId: string): Promise<void>;
20
+ subscribe(listener: () => void): () => void;
21
+ }
22
+ export interface AccountManagerConfig extends Omit<AuthClientConfig, 'storage'> {
23
+ storageFactory?: (namespace: string) => StorageAdapter;
24
+ storageNamespace?: string;
25
+ }
26
+ export declare class AccountMfaRequiredError extends Error {
27
+ readonly client: AuthClient;
28
+ readonly response: IAuthResponse;
29
+ constructor(message: string, client: AuthClient, response: IAuthResponse);
30
+ }
31
+ export declare class AccountManager implements IAccountSwitcher {
32
+ private readonly config;
33
+ private readonly storageFactory;
34
+ private readonly baseNs;
35
+ private readonly indexStorage;
36
+ private readonly clients;
37
+ private readonly nsOf;
38
+ private readonly listeners;
39
+ private index;
40
+ private readonly loaded;
41
+ constructor(config: AccountManagerConfig);
42
+ ready(): Promise<void>;
43
+ createPendingClient(): AuthClient;
44
+ addAccount(dto: ILoginRequest, options?: RequestOptions): Promise<AccountSnapshot>;
45
+ commitAccount(client: AuthClient): Promise<AccountSnapshot>;
46
+ switchAccount(accountId: string): Promise<AccountSnapshot>;
47
+ removeAccount(accountId: string): Promise<void>;
48
+ listAccounts(): AccountSnapshot[];
49
+ getActiveAccountId(): string | null;
50
+ getActiveClient(): AuthClient | null;
51
+ getAuthHeaders(opts?: GetAuthHeadersOptions): Promise<Record<string, string>>;
52
+ getAuthHeadersSync(opts?: GetAuthHeadersOptions): Record<string, string>;
53
+ subscribe(listener: () => void): () => void;
54
+ private snapshotOf;
55
+ private getClient;
56
+ private buildClient;
57
+ private assertHeaderMode;
58
+ private genNamespace;
59
+ private loadIndex;
60
+ private persist;
61
+ private notify;
62
+ }
63
+ //# sourceMappingURL=account-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-manager.d.ts","sourceRoot":"","sources":["../../src/account/account-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,194 @@
1
+ import { LocalStorageAdapter } from '../storage/local.storage';
2
+ import { AuthClient } from '../client/auth-client';
3
+ export class AccountMfaRequiredError extends Error {
4
+ constructor(message, client, response) {
5
+ super(message);
6
+ this.client = client;
7
+ this.response = response;
8
+ this.name = 'AccountMfaRequiredError';
9
+ }
10
+ }
11
+ export class AccountManager {
12
+ constructor(config) {
13
+ this.config = config;
14
+ this.clients = new Map();
15
+ this.nsOf = new WeakMap();
16
+ this.listeners = new Set();
17
+ this.index = { accounts: [], activeAccountId: null };
18
+ this.storageFactory = config.storageFactory ?? ((ns) => new LocalStorageAdapter(ns));
19
+ this.baseNs = config.storageNamespace ?? 'nest_auth_';
20
+ this.indexStorage = this.storageFactory(`${this.baseNs}accounts_`);
21
+ this.loaded = this.loadIndex();
22
+ }
23
+ async ready() {
24
+ await this.loaded;
25
+ }
26
+ createPendingClient() {
27
+ this.assertHeaderMode();
28
+ return this.buildClient(this.genNamespace());
29
+ }
30
+ async addAccount(dto, options) {
31
+ await this.ready();
32
+ const client = this.createPendingClient();
33
+ const res = await client.login(dto, options);
34
+ if (res?.isRequiresMfa) {
35
+ throw new AccountMfaRequiredError('Login requires MFA. Complete it on the returned client (verify2fa), then call commitAccount(client).', client, res);
36
+ }
37
+ return this.commitAccount(client);
38
+ }
39
+ async commitAccount(client) {
40
+ await this.ready();
41
+ const ns = this.nsOf.get(client);
42
+ if (!ns)
43
+ throw new Error('commitAccount: client was not created by this AccountManager.');
44
+ const session = client.getSession();
45
+ if (!session?.userId) {
46
+ throw new Error('commitAccount: client is not authenticated (no session).');
47
+ }
48
+ const accountId = session.tenantId ? `${session.userId}:${session.tenantId}` : session.userId;
49
+ const prior = this.index.accounts.find((a) => a.accountId === accountId);
50
+ if (prior && prior.ns !== ns) {
51
+ await this.removeAccount(accountId);
52
+ }
53
+ let email;
54
+ let label;
55
+ try {
56
+ const u = (await client.getSessionUserData());
57
+ email = u?.email ?? undefined;
58
+ label = u?.name ?? u?.displayName ?? email;
59
+ }
60
+ catch {
61
+ }
62
+ const entry = { accountId, ns, userId: session.userId, tenantId: session.tenantId, email, label };
63
+ this.index.accounts = this.index.accounts.filter((a) => a.accountId !== accountId).concat(entry);
64
+ this.clients.set(accountId, client);
65
+ this.index.activeAccountId = accountId;
66
+ await this.persist();
67
+ this.notify();
68
+ return this.snapshotOf(entry);
69
+ }
70
+ async switchAccount(accountId) {
71
+ await this.ready();
72
+ const acct = this.index.accounts.find((a) => a.accountId === accountId);
73
+ if (!acct)
74
+ throw new Error(`switchAccount: unknown account '${accountId}'.`);
75
+ this.index.activeAccountId = accountId;
76
+ this.getClient(accountId);
77
+ await this.persist();
78
+ this.notify();
79
+ return this.snapshotOf(acct);
80
+ }
81
+ async removeAccount(accountId) {
82
+ await this.ready();
83
+ const acct = this.index.accounts.find((a) => a.accountId === accountId);
84
+ if (!acct)
85
+ return;
86
+ const client = this.getClient(accountId);
87
+ try {
88
+ await client?.logout();
89
+ }
90
+ catch {
91
+ }
92
+ try {
93
+ await Promise.resolve(this.storageFactory(acct.ns).clear?.());
94
+ }
95
+ catch {
96
+ }
97
+ this.clients.delete(accountId);
98
+ this.index.accounts = this.index.accounts.filter((a) => a.accountId !== accountId);
99
+ if (this.index.activeAccountId === accountId) {
100
+ this.index.activeAccountId = this.index.accounts[0]?.accountId ?? null;
101
+ }
102
+ await this.persist();
103
+ this.notify();
104
+ }
105
+ listAccounts() {
106
+ return this.index.accounts.map((a) => this.snapshotOf(a));
107
+ }
108
+ getActiveAccountId() {
109
+ return this.index.activeAccountId;
110
+ }
111
+ getActiveClient() {
112
+ return this.index.activeAccountId ? this.getClient(this.index.activeAccountId) : null;
113
+ }
114
+ async getAuthHeaders(opts) {
115
+ const c = this.getActiveClient();
116
+ return c ? c.getAuthHeaders(opts) : {};
117
+ }
118
+ getAuthHeadersSync(opts) {
119
+ const c = this.getActiveClient();
120
+ return c ? c.getAuthHeadersSync(opts) : {};
121
+ }
122
+ subscribe(listener) {
123
+ this.listeners.add(listener);
124
+ return () => {
125
+ this.listeners.delete(listener);
126
+ };
127
+ }
128
+ snapshotOf(a) {
129
+ return {
130
+ accountId: a.accountId,
131
+ userId: a.userId,
132
+ tenantId: a.tenantId,
133
+ email: a.email,
134
+ label: a.label,
135
+ isActive: a.accountId === this.index.activeAccountId,
136
+ };
137
+ }
138
+ getClient(accountId) {
139
+ const acct = this.index.accounts.find((a) => a.accountId === accountId);
140
+ if (!acct)
141
+ return null;
142
+ let c = this.clients.get(accountId);
143
+ if (!c) {
144
+ c = this.buildClient(acct.ns);
145
+ this.clients.set(accountId, c);
146
+ }
147
+ return c;
148
+ }
149
+ buildClient(ns) {
150
+ const { storageFactory, storageNamespace, ...base } = this.config;
151
+ const client = new AuthClient({ ...base, storage: this.storageFactory(ns) });
152
+ this.nsOf.set(client, ns);
153
+ return client;
154
+ }
155
+ assertHeaderMode() {
156
+ if (this.config.accessTokenType === 'cookie') {
157
+ throw new Error('Multi-account requires header/bearer token mode. In cookie mode a single cookie name holds only one account. Set accessTokenType to "header" (or null), or use native secure storage.');
158
+ }
159
+ }
160
+ genNamespace() {
161
+ const g = typeof globalThis !== 'undefined' ? globalThis : {};
162
+ const id = g.crypto && typeof g.crypto.randomUUID === 'function'
163
+ ? g.crypto.randomUUID()
164
+ : `${Date.now().toString(36)}${Math.floor(Math.random() * 1e9).toString(36)}`;
165
+ return `${this.baseNs}a_${id}_`;
166
+ }
167
+ async loadIndex() {
168
+ try {
169
+ const raw = await Promise.resolve(this.indexStorage.get('index'));
170
+ if (raw)
171
+ this.index = JSON.parse(raw);
172
+ }
173
+ catch {
174
+ }
175
+ this.notify();
176
+ }
177
+ async persist() {
178
+ try {
179
+ await Promise.resolve(this.indexStorage.set('index', JSON.stringify(this.index)));
180
+ }
181
+ catch {
182
+ }
183
+ }
184
+ notify() {
185
+ for (const l of this.listeners) {
186
+ try {
187
+ l();
188
+ }
189
+ catch {
190
+ }
191
+ }
192
+ }
193
+ }
194
+ //# sourceMappingURL=account-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-manager.js","sourceRoot":"","sources":["../../src/account/account-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { ILoginRequest } from '@ackplus/nest-auth-contracts';
2
+ import { AuthClientConfig } from '../types/config.types';
3
+ import { AuthClient } from '../client/auth-client';
4
+ import type { AccountSnapshot, IAccountSwitcher } from './account-manager';
5
+ export declare const ACTIVE_ACCOUNT_COOKIE_NAME = "nest_auth_active_account";
6
+ export declare class CookieAccountManager implements IAccountSwitcher {
7
+ private readonly client;
8
+ private readonly baseUrl;
9
+ private readonly accountsPath;
10
+ private readonly listeners;
11
+ private accounts;
12
+ private activeAccountId;
13
+ constructor(config: AuthClientConfig);
14
+ ready(): Promise<void>;
15
+ getActiveClient(): AuthClient;
16
+ listAccounts(): AccountSnapshot[];
17
+ getActiveAccountId(): string | null;
18
+ subscribe(listener: () => void): () => void;
19
+ addAccount(dto: ILoginRequest): Promise<AccountSnapshot>;
20
+ switchAccount(accountId: string): Promise<AccountSnapshot>;
21
+ removeAccount(accountId: string): Promise<void>;
22
+ private refreshAccounts;
23
+ private setSelectorCookie;
24
+ private notify;
25
+ }
26
+ //# sourceMappingURL=cookie-account-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookie-account-manager.d.ts","sourceRoot":"","sources":["../../src/account/cookie-account-manager.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAqB,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG3E,eAAO,MAAM,0BAA0B,6BAA6B,CAAC;AAErE,qBAAa,oBAAqB,YAAW,gBAAgB;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,eAAe,CAAuB;gBAElC,MAAM,EAAE,gBAAgB;IAM9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,eAAe,IAAI,UAAU;IAI7B,YAAY,IAAI,eAAe,EAAE;IAIjC,kBAAkB,IAAI,MAAM,GAAG,IAAI;IAInC,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAQrC,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC;IAQxD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAW1D,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YASvC,eAAe;IAmB7B,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,MAAM;CASjB"}
@@ -0,0 +1,89 @@
1
+ import { DEFAULT_ENDPOINTS } from '../types/config.types';
2
+ import { AuthClient } from '../client/auth-client';
3
+ export const ACTIVE_ACCOUNT_COOKIE_NAME = 'nest_auth_active_account';
4
+ export class CookieAccountManager {
5
+ constructor(config) {
6
+ this.listeners = new Set();
7
+ this.accounts = [];
8
+ this.activeAccountId = null;
9
+ this.client = new AuthClient({ ...config, accessTokenType: 'cookie' });
10
+ this.baseUrl = config.baseUrl.replace(/\/$/, '');
11
+ this.accountsPath = config.endpoints?.accounts ?? DEFAULT_ENDPOINTS.accounts;
12
+ }
13
+ async ready() {
14
+ await this.refreshAccounts();
15
+ this.notify();
16
+ }
17
+ getActiveClient() {
18
+ return this.client;
19
+ }
20
+ listAccounts() {
21
+ return this.accounts;
22
+ }
23
+ getActiveAccountId() {
24
+ return this.activeAccountId;
25
+ }
26
+ subscribe(listener) {
27
+ this.listeners.add(listener);
28
+ return () => {
29
+ this.listeners.delete(listener);
30
+ };
31
+ }
32
+ async addAccount(dto) {
33
+ await this.client.login(dto);
34
+ await this.refreshAccounts();
35
+ this.notify();
36
+ return this.accounts.find((a) => a.isActive) ?? this.accounts[this.accounts.length - 1];
37
+ }
38
+ async switchAccount(accountId) {
39
+ this.setSelectorCookie(accountId);
40
+ this.activeAccountId = accountId;
41
+ this.accounts = this.accounts.map((a) => ({ ...a, isActive: a.accountId === accountId }));
42
+ this.notify();
43
+ const found = this.accounts.find((a) => a.accountId === accountId);
44
+ if (!found)
45
+ throw new Error(`switchAccount: unknown account '${accountId}'.`);
46
+ return found;
47
+ }
48
+ async removeAccount(accountId) {
49
+ this.setSelectorCookie(accountId);
50
+ await this.client.logout();
51
+ await this.refreshAccounts();
52
+ this.notify();
53
+ }
54
+ async refreshAccounts() {
55
+ try {
56
+ const res = await fetch(`${this.baseUrl}${this.accountsPath}`, { credentials: 'include' });
57
+ if (!res.ok)
58
+ return;
59
+ const data = await res.json();
60
+ this.accounts = (data?.accounts ?? []).map((a) => ({
61
+ accountId: a.accountId,
62
+ userId: a.accountId,
63
+ tenantId: a.tenantId,
64
+ email: a.email,
65
+ label: a.email ?? a.phone ?? a.accountId,
66
+ isActive: !!a.isActive,
67
+ }));
68
+ this.activeAccountId = this.accounts.find((a) => a.isActive)?.accountId ?? null;
69
+ }
70
+ catch {
71
+ }
72
+ }
73
+ setSelectorCookie(accountId) {
74
+ if (typeof document === 'undefined') {
75
+ throw new Error('CookieAccountManager.switchAccount requires a browser (document.cookie).');
76
+ }
77
+ document.cookie = `${ACTIVE_ACCOUNT_COOKIE_NAME}=${encodeURIComponent(accountId)}; path=/; samesite=lax`;
78
+ }
79
+ notify() {
80
+ for (const l of this.listeners) {
81
+ try {
82
+ l();
83
+ }
84
+ catch {
85
+ }
86
+ }
87
+ }
88
+ }
89
+ //# sourceMappingURL=cookie-account-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookie-account-manager.js","sourceRoot":"","sources":["../../src/account/cookie-account-manager.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -16,5 +16,8 @@ export type { AuthEvents } from './client/event-emitter';
16
16
  export { RefreshQueue, RetryTracker } from './client/refresh-queue';
17
17
  export { attachToAxios, attachToFetch } from './client/http-attach';
18
18
  export type { AxiosLikeInstance, AttachOptions } from './client/http-attach';
19
+ export { AccountManager, AccountMfaRequiredError } from './account/account-manager';
20
+ export type { AccountSnapshot, AccountManagerConfig, IAccountSwitcher } from './account/account-manager';
21
+ export { CookieAccountManager, ACTIVE_ACCOUNT_COOKIE_NAME } from './account/cookie-account-manager';
19
22
  export { hasRole, hasPermission, hasAnyAccess, hasAllAccess } from './utils/role-utils';
20
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,8BAA8B,CAAC;AAG7C,OAAO,EACH,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,aAAa,EACb,UAAU,GACb,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACH,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,MAAM,EACN,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,qBAAqB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG/E,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAChI,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGzE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG7E,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,8BAA8B,CAAC;AAG7C,OAAO,EACH,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,aAAa,EACb,UAAU,GACb,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACH,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,MAAM,EACN,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,qBAAqB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG/E,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAChI,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGzE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG7E,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpF,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACzG,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAGpG,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -12,5 +12,7 @@ export { AuthClient } from './client/auth-client';
12
12
  export { EventEmitter, createAuthEventEmitter } from './client/event-emitter';
13
13
  export { RefreshQueue, RetryTracker } from './client/refresh-queue';
14
14
  export { attachToAxios, attachToFetch } from './client/http-attach';
15
+ export { AccountManager, AccountMfaRequiredError } from './account/account-manager';
16
+ export { CookieAccountManager, ACTIVE_ACCOUNT_COOKIE_NAME } from './account/cookie-account-manager';
15
17
  export { hasRole, hasPermission, hasAnyAccess, hasAllAccess } from './utils/role-utils';
16
18
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,8BAA8B,CAAC;AA0B7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAiB,MAAM,0BAA0B,CAAC;AAG/E,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAChI,OAAO,EAAE,YAAY,EAAsB,MAAM,uBAAuB,CAAC;AAGzE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIpE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,8BAA8B,CAAC;AA0B7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAiB,MAAM,0BAA0B,CAAC;AAG/E,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAChI,OAAO,EAAE,YAAY,EAAsB,MAAM,uBAAuB,CAAC;AAGzE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIpE,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpF,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAGpG,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
@@ -50,6 +50,7 @@ export declare const DEFAULT_ENDPOINTS: {
50
50
  verify2fa: string;
51
51
  verifySession: string;
52
52
  me: string;
53
+ accounts: string;
53
54
  switchTenant: string;
54
55
  setupTotp: string;
55
56
  verifyTotpSetup: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.types.d.ts","sourceRoot":"","sources":["../../src/types/config.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.types.d.ts","sourceRoot":"","sources":["../../src/types/config.types.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ export const DEFAULT_ENDPOINTS = {
18
18
  verify2fa: '/auth/mfa/verify',
19
19
  verifySession: '/auth/verify-session',
20
20
  me: '/auth/me',
21
+ accounts: '/auth/accounts',
21
22
  switchTenant: '/auth/switch-tenant',
22
23
  setupTotp: '/auth/mfa/setup-totp',
23
24
  verifyTotpSetup: '/auth/mfa/verify-totp-setup',
@@ -1 +1 @@
1
- {"version":3,"file":"config.types.js","sourceRoot":"","sources":["../../src/types/config.types.ts"],"names":[],"mappings":"AA4FA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC7B,KAAK,EAAE,aAAa;IACpB,gBAAgB,EAAE,yBAAyB;IAC3C,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,cAAc;IACtB,SAAS,EAAE,kBAAkB;IAC7B,OAAO,EAAE,qBAAqB;IAC9B,cAAc,EAAE,uBAAuB;IACvC,uBAAuB,EAAE,kCAAkC;IAC3D,aAAa,EAAE,sBAAsB;IACrC,WAAW,EAAE,oBAAoB;IACjC,qBAAqB,EAAE,+BAA+B;IACtD,kBAAkB,EAAE,+BAA+B;IACnD,qBAAqB,EAAE,+BAA+B;IACtD,WAAW,EAAE,oBAAoB;IACjC,cAAc,EAAE,uBAAuB;IACvC,OAAO,EAAE,qBAAqB;IAC9B,SAAS,EAAE,kBAAkB;IAC7B,aAAa,EAAE,sBAAsB;IACrC,EAAE,EAAE,UAAU;IACd,YAAY,EAAE,qBAAqB;IACnC,SAAS,EAAE,sBAAsB;IACjC,eAAe,EAAE,6BAA6B;IAC9C,YAAY,EAAE,kBAAkB;IAChC,eAAe,EAAE,mBAAmB;IACpC,gBAAgB,EAAE,mBAAmB;IACrC,SAAS,EAAE,kBAAkB;IAC7B,oBAAoB,EAAE,kCAAkC;IACxD,QAAQ,EAAE,sBAAsB;CACnC,CAAC"}
1
+ {"version":3,"file":"config.types.js","sourceRoot":"","sources":["../../src/types/config.types.ts"],"names":[],"mappings":"AA4FA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC7B,KAAK,EAAE,aAAa;IACpB,gBAAgB,EAAE,yBAAyB;IAC3C,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,cAAc;IACtB,SAAS,EAAE,kBAAkB;IAC7B,OAAO,EAAE,qBAAqB;IAC9B,cAAc,EAAE,uBAAuB;IACvC,uBAAuB,EAAE,kCAAkC;IAC3D,aAAa,EAAE,sBAAsB;IACrC,WAAW,EAAE,oBAAoB;IACjC,qBAAqB,EAAE,+BAA+B;IACtD,kBAAkB,EAAE,+BAA+B;IACnD,qBAAqB,EAAE,+BAA+B;IACtD,WAAW,EAAE,oBAAoB;IACjC,cAAc,EAAE,uBAAuB;IACvC,OAAO,EAAE,qBAAqB;IAC9B,SAAS,EAAE,kBAAkB;IAC7B,aAAa,EAAE,sBAAsB;IACrC,EAAE,EAAE,UAAU;IACd,QAAQ,EAAE,gBAAgB;IAC1B,YAAY,EAAE,qBAAqB;IACnC,SAAS,EAAE,sBAAsB;IACjC,eAAe,EAAE,6BAA6B;IAC9C,YAAY,EAAE,kBAAkB;IAChC,eAAe,EAAE,mBAAmB;IACpC,gBAAgB,EAAE,mBAAmB;IACrC,SAAS,EAAE,kBAAkB;IAC7B,oBAAoB,EAAE,kCAAkC;IACxD,QAAQ,EAAE,sBAAsB;CACnC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ackplus/nest-auth-client",
3
- "version": "2.0.4",
3
+ "version": "2.1.0",
4
4
  "description": "NestJS authentication for REST APIs",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -42,12 +42,12 @@
42
42
  "dependencies": {
43
43
  "jwt-decode": "^4.0.0",
44
44
  "tslib": "^2.3.0",
45
- "@ackplus/nest-auth-contracts": "2.0.4"
45
+ "@ackplus/nest-auth-contracts": "2.1.0"
46
46
  },
47
47
  "devDependencies": {
48
48
  "typescript": "^5.7.3",
49
49
  "vitest": "^3.0.0",
50
- "@ackplus/vitest-preset": "2.0.4"
50
+ "@ackplus/vitest-preset": "2.1.0"
51
51
  },
52
52
  "scripts": {
53
53
  "clean": "rm -rf dist tsconfig.build.tsbuildinfo",