ngx-better-auth 0.5.2 → 0.6.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.
- package/fesm2022/ngx-better-auth.mjs +13 -7
- package/fesm2022/ngx-better-auth.mjs.map +1 -1
- package/index.d.ts +39 -109
- package/package.json +1 -1
|
@@ -9,6 +9,12 @@ class MainService {
|
|
|
9
9
|
authClient = createAuthClient({
|
|
10
10
|
...this.config,
|
|
11
11
|
});
|
|
12
|
+
mapData(data) {
|
|
13
|
+
if (data.error) {
|
|
14
|
+
throw data.error;
|
|
15
|
+
}
|
|
16
|
+
return data.data;
|
|
17
|
+
}
|
|
12
18
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MainService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
13
19
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: MainService, providedIn: 'root' });
|
|
14
20
|
}
|
|
@@ -148,16 +154,16 @@ class SessionService {
|
|
|
148
154
|
mainService = inject(MainService);
|
|
149
155
|
client = this.mainService.authClient;
|
|
150
156
|
listSessions() {
|
|
151
|
-
return defer(() => this.client.listSessions());
|
|
157
|
+
return defer(() => this.client.listSessions()).pipe(map((data) => this.mainService.mapData(data)));
|
|
152
158
|
}
|
|
153
159
|
revokeSession(sessionToken) {
|
|
154
|
-
return defer(() => this.client.revokeSession({ token: sessionToken }));
|
|
160
|
+
return defer(() => this.client.revokeSession({ token: sessionToken })).pipe(map((data) => this.mainService.mapData(data)));
|
|
155
161
|
}
|
|
156
162
|
revokeOtherSessions() {
|
|
157
|
-
return defer(() => this.client.revokeOtherSessions());
|
|
163
|
+
return defer(() => this.client.revokeOtherSessions()).pipe(map((data) => this.mainService.mapData(data)));
|
|
158
164
|
}
|
|
159
165
|
revokeAllSessions() {
|
|
160
|
-
return defer(() => this.client.revokeSessions());
|
|
166
|
+
return defer(() => this.client.revokeSessions()).pipe(map((data) => this.mainService.mapData(data)));
|
|
161
167
|
}
|
|
162
168
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: SessionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
163
169
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: SessionService, providedIn: 'root' });
|
|
@@ -171,13 +177,13 @@ class AccountService {
|
|
|
171
177
|
mainService = inject(MainService);
|
|
172
178
|
client = this.mainService.authClient;
|
|
173
179
|
listAccounts() {
|
|
174
|
-
return defer(() => this.client.listAccounts());
|
|
180
|
+
return defer(() => this.client.listAccounts()).pipe(map((data) => this.mainService.mapData(data)));
|
|
175
181
|
}
|
|
176
182
|
linkSocial(data) {
|
|
177
|
-
return defer(() => this.client.linkSocial(data));
|
|
183
|
+
return defer(() => this.client.linkSocial(data)).pipe(map((data) => this.mainService.mapData(data)));
|
|
178
184
|
}
|
|
179
185
|
unlinkAccount(data) {
|
|
180
|
-
return defer(() => this.client.unlinkAccount(data));
|
|
186
|
+
return defer(() => this.client.unlinkAccount(data)).pipe(map((data) => this.mainService.mapData(data)));
|
|
181
187
|
}
|
|
182
188
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: AccountService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
183
189
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: AccountService, providedIn: 'root' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-better-auth.mjs","sources":["../../../src/lib/services/main.service.ts","../../../src/lib/utils/email.util.ts","../../../src/lib/services/auth.service.ts","../../../src/lib/services/session.service.ts","../../../src/lib/services/account.service.ts","../../../src/lib/utils/validate-plugin.ts","../../../src/lib/services/two-factor.service.ts","../../../src/lib/services/passkey.service.ts","../../../src/lib/services/generic-oauth.service.ts","../../../src/lib/services/email-otp.service.ts","../../../src/lib/services/one-tap.service.ts","../../../src/lib/services/magic-link.service.ts","../../../src/lib/services/admin.service.ts","../../../src/lib/services/organization.service.ts","../../../src/lib/providers.ts","../../../src/lib/guards/auth-guard.utils.ts","../../../src/lib/guards/auth-guard.factory.ts","../../../src/ngx-better-auth.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core'\nimport { BETTER_AUTH_CONFIG_TOKEN } from '../providers'\nimport { createAuthClient } from 'better-auth/client'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MainService {\n private readonly config = inject(BETTER_AUTH_CONFIG_TOKEN)\n\n readonly authClient = createAuthClient({\n ...this.config,\n })\n}\n","export function isEmail(email: string): boolean {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\n return emailRegex.test(email)\n}\n","import { computed, inject, Injectable, signal } from '@angular/core'\nimport { BetterFetchError } from 'better-auth/client'\nimport { AuthSession, Provider } from '../models'\nimport { defer, filter, map, Observable, shareReplay, switchMap, tap } from 'rxjs'\nimport { MainService } from './main.service'\nimport { SocialProviderList } from 'better-auth/social-providers'\nimport { isEmail } from '../utils/email.util'\nimport { logger } from 'better-auth'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n private readonly mainService = inject(MainService)\n\n private readonly client = this.mainService.authClient\n\n /**\n * Current authenticated session\n */\n readonly session = signal<AuthSession | null>(null)\n\n /**\n * Whether there is an active session\n */\n readonly isLoggedIn = computed(() => !!this.session()?.session)\n\n /**\n * Observable stream of the session state. Emits only when the session is resolved (not pending).\n * This is intended for guards and other async operations.\n */\n readonly sessionState$!: Observable<AuthSession | null>\n\n constructor() {\n this.session$()\n\n const useSession$ = new Observable<{\n data: AuthSession | null\n error: BetterFetchError | null\n isPending: boolean\n }>((subscriber) => {\n this.client.useSession.subscribe((value) => subscriber.next(value))\n })\n\n this.sessionState$ = useSession$.pipe(\n filter((session) => !session.isPending),\n map((session) => {\n if (session.error) {\n return null\n }\n return session.data\n }),\n shareReplay(1),\n )\n }\n\n /**\n * Asynchronously checks if the user is authenticated.\n * Ideal for route guards.\n * @returns An Observable that emits true for an active session, and false otherwise.\n */\n isLoggedIn$(): Observable<boolean> {\n return this.sessionState$.pipe(map((session) => !!session?.session))\n }\n\n private session$() {\n this.client.useSession.subscribe((session) => {\n if (session.isPending) {\n this.session.set(null)\n return\n }\n if (session.error) {\n const error: BetterFetchError = session.error\n if (error.status !== 401) {\n console.error('Error fetching session:', error)\n }\n this.session.set(null)\n return\n }\n this.session.set(session.data)\n })\n }\n\n /**\n * pass either email or username to sign in. Needs username plugin enabled to use username.\n * @param data : { email?: string; username?: string; password: string; rememberMe?: boolean }\n */\n signIn(data: { login: string; password: string; rememberMe?: boolean }) {\n if (isEmail(data.login)) {\n return this.signInEmail({ email: data.login, password: data.password, rememberMe: data.rememberMe })\n } else {\n return this.signInUsername({ username: data.login, password: data.password, rememberMe: data.rememberMe })\n }\n }\n\n signInEmail(data: { email: string; password: string; rememberMe?: boolean }) {\n return defer(() => this.client.signIn.email(data)).pipe(switchMap(() => this.sessionState$.pipe(filter((s) => s !== null))))\n }\n\n signInUsername(data: { username: string; password: string; rememberMe?: boolean }) {\n return defer(() => (this.client as any).signIn.username(data)).pipe(switchMap(() => this.sessionState$.pipe(filter((s) => s !== null))))\n }\n\n /**\n * Sign up a new user using email and password.\n *\n * Parameters username and displayUsername can be used if the username's plugin is enabled.\n * @param data\n */\n signUpEmail(data: { name: string; email: string; password: string; username: string; displayUsername?: string }) {\n return defer(() => this.client.signUp.email(data)).pipe(switchMap(() => this.sessionState$.pipe(filter((s) => s !== null))))\n }\n\n signInProvider(provider: Provider) {\n return defer(() => this.client.signIn.social({ provider })).pipe(switchMap(() => this.sessionState$.pipe(filter((s) => s !== null))))\n }\n\n signOut() {\n return defer(() => this.client.signOut()).pipe(switchMap(() => this.sessionState$.pipe(filter((s) => s === null))))\n }\n\n sendVerificationEmail(data: { email: string; callbackURL?: string }) {\n return defer(() => this.client.sendVerificationEmail(data))\n }\n\n requestPasswordReset(data: { email: string; redirectTo?: string }) {\n return defer(() => this.client.requestPasswordReset(data))\n }\n\n resetPassword(data: { newPassword: string; token: string }) {\n return defer(() => this.client.resetPassword(data))\n }\n\n changePassword(data: { currentPassword: string; newPassword: string; revokeOtherSessions?: boolean }) {\n return defer(() => this.client.changePassword(data))\n }\n\n changeEmail(data: { newEmail: string; callbackURL?: string }) {\n return defer(() => this.client.changeEmail(data))\n }\n\n updateUser(data: { name?: string; image?: string; username?: string; displayUsername?: string }) {\n return defer(() => this.client.updateUser(data))\n }\n\n isUsernameAvailable(data: { username: string }) {\n return defer(() => (this.client as any).isUsernameAvailable(data))\n }\n\n deleteUser(data: { callbackURL?: string; token?: string; password?: string }) {\n return defer(() => this.client.deleteUser(data)).pipe(tap(() => this.sessionState$.pipe(filter((s) => s === null))))\n }\n}\n","import { inject, Injectable } from '@angular/core'\nimport { defer } from 'rxjs'\nimport { MainService } from './main.service'\n\n@Injectable({ providedIn: 'root' })\nexport class SessionService {\n private readonly mainService = inject(MainService)\n\n private readonly client = this.mainService.authClient\n\n listSessions() {\n return defer(() => this.client.listSessions())\n }\n\n revokeSession(sessionToken: string) {\n return defer(() => this.client.revokeSession({ token: sessionToken }))\n }\n\n revokeOtherSessions() {\n return defer(() => this.client.revokeOtherSessions())\n }\n\n revokeAllSessions() {\n return defer(() => this.client.revokeSessions())\n }\n}\n","import { inject, Injectable } from '@angular/core'\nimport { defer } from 'rxjs'\nimport { MainService } from './main.service'\nimport { Provider } from '../models'\n\n@Injectable({ providedIn: 'root' })\nexport class AccountService {\n private readonly mainService = inject(MainService)\n\n private readonly client = this.mainService.authClient\n\n listAccounts() {\n return defer(() => this.client.listAccounts())\n }\n\n linkSocial(data: {\n provider: Provider\n callbackURL?: string\n scopes?: string[]\n idToken?: {\n token: string\n nonce?: string\n accessToken?: string\n refreshToken?: string\n }\n }) {\n return defer(() => this.client.linkSocial(data))\n }\n\n unlinkAccount(data: { providerId: Provider; accountId: string }) {\n return defer(() => this.client.unlinkAccount(data))\n }\n}\n","export function validatePlugin(client: any, property: string) {\n if (!client) {\n throw new Error('AuthClient is not initialized.')\n }\n\n if (!client[property]) {\n throw new Error(\n `Property '${property}' is not available on authClient. Please ensure the plugin providing this property is included in the plugins array.`,\n )\n }\n}\n","import { inject, Injectable } from '@angular/core'\nimport { defer } from 'rxjs'\nimport { validatePlugin } from '../utils/validate-plugin'\nimport { MainService } from './main.service'\n\n@Injectable({ providedIn: 'root' })\nexport class TwoFactorService {\n private readonly mainService = inject(MainService)\n\n twoFactor: any\n\n constructor() {\n const client = this.mainService.authClient as { twoFactor?: any }\n validatePlugin(client, 'twoFactor')\n this.twoFactor = client.twoFactor\n }\n\n enable(data: { password: string; issuer?: string }) {\n return defer(() => this.twoFactor.enable(data))\n }\n\n disable(data: { password: string }) {\n return defer(() => this.twoFactor.disable(data))\n }\n\n getTotpUri(data: { password: string }) {\n return defer(() => this.twoFactor.getTotpUri(data))\n }\n\n verifyTotp(data: { code: string; trustDevice?: boolean }) {\n return defer(() => this.twoFactor.verifyTotp(data))\n }\n\n sendOtp(data: { trustDevice?: boolean }) {\n return defer(() => this.twoFactor.sendOtp(data))\n }\n\n verifyOtp(data: { code: string; trustDevice?: boolean }) {\n return defer(() => this.twoFactor.verifyOtp(data))\n }\n\n generateBackupCodes(data: { password: string }) {\n return defer(() => this.twoFactor.generateBackupCodes(data))\n }\n\n verifyBackupCode(data: { code: string; disableSession?: boolean; trustDevice?: boolean }) {\n return defer(() => this.twoFactor.verifyBackupCode(data))\n }\n}\n","import { inject, Injectable } from '@angular/core'\nimport { defer } from 'rxjs'\nimport { MainService } from './main.service'\nimport { validatePlugin } from '../utils/validate-plugin'\n\n@Injectable({ providedIn: 'root' })\nexport class PasskeyService {\n private readonly mainService = inject(MainService)\n\n passkey: any\n\n constructor() {\n const client = this.mainService.authClient as { passkey?: any }\n validatePlugin(client, 'passkey')\n this.passkey = client.passkey\n }\n\n addPasskey(data: { name?: string; authenticatorAttachment?: 'platform' | 'cross-platform' }) {\n return defer(() => this.passkey.addPasskey(data))\n }\n\n listUserPasskeys() {\n return defer(() => this.passkey.listUserPasskeys())\n }\n\n deletePasskey(data: { id: string }) {\n return defer(() => this.passkey.deletePasskey(data))\n }\n\n updatePasskey(data: { id: string; name: string }) {\n return defer(() => this.passkey.updatePasskey(data))\n }\n}\n","import { inject, Injectable } from '@angular/core'\nimport { defer, filter, switchMap } from 'rxjs'\nimport { MainService } from './main.service'\nimport { validatePlugin } from '../utils/validate-plugin'\nimport { AuthService } from './auth.service'\n\n@Injectable({ providedIn: 'root' })\nexport class GenericOauthService {\n private readonly mainService = inject(MainService)\n private readonly authService = inject(AuthService)\n\n oauth: any\n\n constructor() {\n const client = this.mainService.authClient as { oauth2?: any }\n validatePlugin(client, 'oauth2')\n this.oauth = client.oauth2\n }\n\n signIn(data: {\n providerId: string\n callbackURL?: string\n errorCallbackURL?: string\n newUserCallbackURL?: string\n disableRedirect?: boolean\n scopes?: string[]\n requestSignUp?: boolean\n }) {\n return defer(() => (this.mainService.authClient.signIn as any).oauth2(data)).pipe(\n switchMap(() => this.authService.sessionState$.pipe(filter((s) => s !== null))),\n )\n }\n\n link(data: { providerId: string; callbackURL: string }) {\n return defer(() => this.oauth.link(data))\n }\n}\n","import { inject, Injectable } from '@angular/core'\nimport { defer, filter, switchMap } from 'rxjs'\nimport { validatePlugin } from '../utils/validate-plugin'\nimport { MainService } from './main.service'\nimport { AuthService } from './auth.service'\n\n@Injectable({ providedIn: 'root' })\nexport class EmailOtpService {\n private readonly mainService = inject(MainService)\n private readonly authService = inject(AuthService)\n\n emailOtp: any\n\n constructor() {\n const client = this.mainService.authClient as { emailOtp?: any }\n validatePlugin(client, 'emailOtp')\n this.emailOtp = client.emailOtp\n }\n\n signInEmailOtp(data: { email: string; otp: string }) {\n return defer(() => (this.mainService.authClient.signIn as any).emailOtp(data)).pipe(\n switchMap(() => this.authService.sessionState$.pipe(filter((s) => s !== null))),\n )\n }\n\n sendVerificationOtp(data: { email: string; type: 'sign-in' | 'email-verification' | 'forget-password' }) {\n return defer(() => this.emailOtp.sendVerificationOtp(data))\n }\n\n checkVerificationOtp(data: { email: string; type: 'sign-in' | 'email-verification' | 'forget-password'; otp: string }) {\n return defer(() => this.emailOtp.checkVerificationOtp(data))\n }\n\n verifyEmail(data: { email: string; otp: string }) {\n return defer(() => this.emailOtp.verifyEmail(data))\n }\n\n resetPassword(data: { email: string; otp: string; password: string }) {\n return defer(() => this.emailOtp.resetPassword(data))\n }\n}\n","import { inject, Injectable } from '@angular/core'\nimport { defer } from 'rxjs'\nimport { validatePlugin } from '../utils/validate-plugin'\nimport { MainService } from './main.service'\n\n@Injectable({ providedIn: 'root' })\nexport class OneTapService {\n private readonly mainService = inject(MainService)\n\n oneTap: any\n\n constructor() {\n const client = this.mainService.authClient as { oneTap?: any }\n validatePlugin(client, 'oneTap')\n this.oneTap = client.oneTap\n }\n\n signIn(data?: {\n fetchOptions?: {\n onSuccess: () => void\n }\n callbackURL?: string\n onPromptNotification?: (notification: any) => void\n }) {\n return defer(() => this.oneTap(data))\n }\n}\n","import { inject, Injectable } from '@angular/core'\nimport { defer } from 'rxjs'\nimport { validatePlugin } from '../utils/validate-plugin'\nimport { MainService } from './main.service'\n\n@Injectable({ providedIn: 'root' })\nexport class MagicLinkService {\n private readonly mainService = inject(MainService)\n\n magicLink: any\n\n constructor() {\n const client = this.mainService.authClient as { magicLink?: any }\n validatePlugin(client, 'magicLink')\n this.magicLink = client.magicLink\n }\n\n signIn(data: { email: string; name?: string; callbackURL?: string; newUserCallbackURL?: string; errorCallbackURL?: string }) {\n return defer(() => (this.mainService.authClient.signIn as any).magicLink(data))\n }\n\n verify(data: { token: string; callbackURL?: string }) {\n return defer(() => this.magicLink.verify(data))\n }\n}\n","import { inject, Injectable } from '@angular/core'\nimport { defer } from 'rxjs'\nimport { validatePlugin } from '../utils/validate-plugin'\nimport { MainService } from './main.service'\n\n@Injectable({ providedIn: 'root' })\nexport class AdminService {\n private readonly mainService = inject(MainService)\n\n admin: any\n\n constructor() {\n const client = this.mainService.authClient as { admin?: any }\n validatePlugin(client, 'admin')\n this.admin = client.admin\n }\n\n setRole(data: { userId: string; role: any }) {\n return defer(() => this.admin.setRole(data))\n }\n\n setUserPassword(data: { userId: string; newPassword: string }) {\n return defer(() => this.admin.setUserPassword(data))\n }\n\n banUser(data: { userId: string; banReason?: string; banExpiresIn?: number }) {\n return defer(() => this.admin.banUser(data))\n }\n\n unbanUser(data: { userId: string }) {\n return defer(() => this.admin.unbanUser(data))\n }\n\n listUserSessions(data: { userId: string }) {\n return defer(() => this.admin.listUserSessions(data))\n }\n\n revokeUserSession(data: { sessionToken: string }) {\n return defer(() => this.admin.revokeUserSession(data))\n }\n\n revokeUserSessions(data: { userId: string }) {\n return defer(() => this.admin.revokeUserSessions(data))\n }\n\n impersonateUser(data: { userId: string }) {\n return defer(() => this.admin.impersonateUser(data))\n }\n\n stopImpersonating() {\n return defer(() => this.admin.stopImpersonating())\n }\n\n removeUser(data: { userId: string }) {\n return defer(() => this.admin.removeUser(data))\n }\n\n hasPermission(data: { userId?: string; permission?: any; permissions?: any }) {\n return defer(() => this.admin.hasPermission(data))\n }\n\n checkRolePermission(data: { role: any; permission: any }) {\n return this.admin.checkRolePermission(data)\n }\n}\n","import { inject, Injectable } from '@angular/core'\nimport { defer } from 'rxjs'\nimport { validatePlugin } from '../utils/validate-plugin'\nimport { MainService } from './main.service'\n\n@Injectable({ providedIn: 'root' })\nexport class OrganizationService {\n private readonly mainService = inject(MainService)\n\n organization: any\n\n constructor() {\n const client = this.mainService.authClient as { organization?: any }\n validatePlugin(client, 'organization')\n this.organization = client.organization\n }\n\n createOrganization(data: {\n name: string\n slug: string\n logo?: string\n metadata?: Record<string, any>\n keepCurrentActiveOrganization?: boolean\n }) {\n return defer(() => this.organization.create(data))\n }\n\n checkSlug(data: { slug: string }) {\n return defer(() => this.organization.checkSlug(data))\n }\n\n list() {\n return defer(() => this.organization.list())\n }\n\n setActive(data: { organizationId?: string | null; organizationSlug?: string }) {\n return defer(() => this.organization.setActive(data))\n }\n\n getFullOrganization(data: { organizationId?: string; organizationSlug?: string; membersLimit?: number }) {\n return defer(() => this.organization.getFullOrganization(data))\n }\n\n update(data: {\n data: {\n name?: string\n slug?: string\n logo?: string\n metadata?: Record<string, any>\n }\n organizationId?: string\n }) {\n return defer(() => this.organization.update(data))\n }\n\n delete(data: { organizationId: string }) {\n return defer(() => this.organization.delete(data))\n }\n\n inviteMember(data: { email: string; role: string | string[]; organizationId?: string; resend?: boolean; teamId?: string }) {\n return defer(() => this.organization.inviteMember(data))\n }\n\n acceptInvitation(data: { invitationId: string }) {\n return defer(() => this.organization.acceptInvitation(data))\n }\n\n cancelInvitation(data: { invitationId: string }) {\n return defer(() => this.organization.cancelInvitation(data))\n }\n\n rejectInvitation(data: { invitationId: string }) {\n return defer(() => this.organization.rejectInvitation(data))\n }\n\n getInvitation(data: { id: string }) {\n return defer(() => this.organization.getInvitation(data))\n }\n\n listInvitations(data: { organizationId?: string }) {\n return defer(() => this.organization.listInvitations(data))\n }\n\n listUserInvitations() {\n return defer(() => this.organization.listUserInvitations())\n }\n\n listMembers(\n data: {\n organizationId?: string\n limit?: number\n offset?: number\n sortBy?: string\n sortDirection?: 'asc' | 'desc'\n filterField?: string\n filterOperator?: 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'nin' | 'contains'\n filterValue?: string\n } = {},\n ) {\n return defer(() => this.organization.listMembers(data))\n }\n\n removeMember(data: { memberIdOrEmail: string; organizationId?: string }) {\n return defer(() => this.organization.removeMember(data))\n }\n\n updateMemberRoles(data: { memberId: string; role: string | string[]; organizationId?: string }) {\n return defer(() => this.organization.updateMemberRoles(data))\n }\n\n getActiveMember() {\n return defer(() => this.organization.getActiveMember())\n }\n\n leave(data: { organizationId?: string }) {\n return defer(() => this.organization.leave(data))\n }\n\n createTeam(data: { name: string; organizationId?: string }) {\n return defer(() => this.organization.createTeam(data))\n }\n\n listTeams(data: { organizationId?: string }) {\n return defer(() => this.organization.listTeams(data))\n }\n\n updateTeam(data: { teamId: string; data: { name?: string; organizationId?: string; createdAt?: Date; updatedAt?: Date } }) {\n return defer(() => this.organization.updateTeam(data))\n }\n\n removeTeam(data: { teamId: string; organizationId?: string }) {\n return defer(() => this.organization.removeTeam(data))\n }\n\n setActiveTeam(data: { teamId?: string }) {\n return defer(() => this.organization.setActiveTeam(data))\n }\n\n listUsersTeams() {\n return defer(() => this.organization.listUsersTeams())\n }\n\n listTeamMembers(data: { teamId: string }) {\n return defer(() => this.organization.listTeamMembers(data))\n }\n\n addTeamMember(data: { teamId: string; userId: string }) {\n return defer(() => this.organization.addTeamMember(data))\n }\n\n removeTeamMember(data: { teamId: string; userId: string }) {\n return defer(() => this.organization.removeTeamMember(data))\n }\n}\n","import { EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core'\nimport { type BetterAuthOptions } from 'better-auth'\nimport { AuthService } from './services'\n\nexport const BETTER_AUTH_CONFIG_TOKEN = new InjectionToken<BetterAuthOptions>('BETTER_AUTH_CONFIG')\n\nconst DEFAULT_CONFIG: Partial<BetterAuthOptions> = {}\n\nexport function provideBetterAuth(options: BetterAuthOptions): EnvironmentProviders {\n const config: BetterAuthOptions = { ...DEFAULT_CONFIG, ...options }\n\n // if baseURL is not a url, it might be because of a proxy in development\n if (!config.baseURL?.startsWith('http')) {\n config.baseURL = window.location.origin\n }\n\n return makeEnvironmentProviders([{ provide: BETTER_AUTH_CONFIG_TOKEN, useValue: config }, AuthService])\n}\n","import { inject } from '@angular/core'\nimport { Router, UrlTree } from '@angular/router'\nimport { AuthService } from '../services'\nimport { map, Observable } from 'rxjs'\n\n/**\n * Redirects unauthorized users to the specified commands (route).\n */\nexport function redirectUnauthorizedTo(commands: string[] = ['/login']): () => Observable<UrlTree | boolean> {\n return () => {\n const auth = inject(AuthService)\n const router = inject(Router)\n return auth.isLoggedIn$().pipe(map((isLoggedIn) => (isLoggedIn ? true : router.createUrlTree(commands))))\n }\n}\n\n/**\n * Redirects logged-in users to the specified commands (route).\n */\nexport function redirectLoggedInTo(commands: string[] = ['/']): () => Observable<UrlTree | boolean> {\n return () => {\n const auth = inject(AuthService)\n const router = inject(Router)\n return auth.isLoggedIn$().pipe(map((isLoggedIn) => (isLoggedIn ? router.createUrlTree(commands) : true)))\n }\n}\n\n/**\n * Allows access only to users with at least one of the specified roles.\n * Redirects unauthorized users to the specified commands (route).\n */\nexport function hasRole(requiredRoles: string[], redirectTo: string[] = ['/unauthorized']): () => Observable<UrlTree | boolean> {\n return () => {\n const auth = inject(AuthService)\n const router = inject(Router)\n\n return auth.sessionState$.pipe(\n map((session) => {\n if (!session || !session.user) {\n return router.createUrlTree(redirectTo)\n }\n\n const role = session?.user?.role\n if (Array.isArray(role)) {\n if (role.some((r) => requiredRoles.includes(r))) {\n return true\n }\n } else if (typeof role === 'string') {\n if (requiredRoles.includes(role)) {\n return true\n }\n }\n\n return router.createUrlTree(redirectTo)\n }),\n )\n }\n}\n","import { CanActivateFn, UrlTree } from '@angular/router'\nimport { Observable } from 'rxjs'\n\nexport function canActivate(\n pipe: () => Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree,\n): {\n canActivate: [CanActivateFn]\n} {\n return {\n canActivate: [() => pipe()],\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAOa,WAAW,CAAA;AACL,IAAA,MAAM,GAAG,MAAM,CAAC,wBAAwB,CAAC;IAEjD,UAAU,GAAG,gBAAgB,CAAC;QACrC,GAAG,IAAI,CAAC,MAAM;AACf,KAAA,CAAC;uGALS,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAX,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA;;2FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACNK,SAAU,OAAO,CAAC,KAAa,EAAA;IACnC,MAAM,UAAU,GAAG,4BAA4B;AAC/C,IAAA,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B;;MCSa,WAAW,CAAA;AACL,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAEjC,IAAA,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU;AAErD;;AAEG;AACM,IAAA,OAAO,GAAG,MAAM,CAAqB,IAAI,mDAAC;AAEnD;;AAEG;AACM,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,sDAAC;AAE/D;;;AAGG;AACM,IAAA,aAAa;AAEtB,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,QAAQ,EAAE;QAEf,MAAM,WAAW,GAAG,IAAI,UAAU,CAI/B,CAAC,UAAU,KAAI;AAChB,YAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrE,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,IAAI,CACnC,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EACvC,GAAG,CAAC,CAAC,OAAO,KAAI;AACd,YAAA,IAAI,OAAO,CAAC,KAAK,EAAE;AACjB,gBAAA,OAAO,IAAI;YACb;YACA,OAAO,OAAO,CAAC,IAAI;AACrB,QAAA,CAAC,CAAC,EACF,WAAW,CAAC,CAAC,CAAC,CACf;IACH;AAEA;;;;AAIG;IACH,WAAW,GAAA;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtE;IAEQ,QAAQ,GAAA;QACd,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,KAAI;AAC3C,YAAA,IAAI,OAAO,CAAC,SAAS,EAAE;AACrB,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBACtB;YACF;AACA,YAAA,IAAI,OAAO,CAAC,KAAK,EAAE;AACjB,gBAAA,MAAM,KAAK,GAAqB,OAAO,CAAC,KAAK;AAC7C,gBAAA,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;AACxB,oBAAA,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC;gBACjD;AACA,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBACtB;YACF;YACA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;AAChC,QAAA,CAAC,CAAC;IACJ;AAEA;;;AAGG;AACH,IAAA,MAAM,CAAC,IAA+D,EAAA;AACpE,QAAA,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QACtG;aAAO;YACL,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5G;IACF;AAEA,IAAA,WAAW,CAAC,IAA+D,EAAA;QACzE,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9H;AAEA,IAAA,cAAc,CAAC,IAAkE,EAAA;QAC/E,OAAO,KAAK,CAAC,MAAO,IAAI,CAAC,MAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1I;AAEA;;;;;AAKG;AACH,IAAA,WAAW,CAAC,IAAmG,EAAA;QAC7G,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9H;AAEA,IAAA,cAAc,CAAC,QAAkB,EAAA;QAC/B,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IACvI;IAEA,OAAO,GAAA;AACL,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IACrH;AAEA,IAAA,qBAAqB,CAAC,IAA6C,EAAA;AACjE,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC7D;AAEA,IAAA,oBAAoB,CAAC,IAA4C,EAAA;AAC/D,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC5D;AAEA,IAAA,aAAa,CAAC,IAA4C,EAAA;AACxD,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACrD;AAEA,IAAA,cAAc,CAAC,IAAqF,EAAA;AAClG,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACtD;AAEA,IAAA,WAAW,CAAC,IAAgD,EAAA;AAC1D,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACnD;AAEA,IAAA,UAAU,CAAC,IAAoF,EAAA;AAC7F,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClD;AAEA,IAAA,mBAAmB,CAAC,IAA0B,EAAA;AAC5C,QAAA,OAAO,KAAK,CAAC,MAAO,IAAI,CAAC,MAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACpE;AAEA,IAAA,UAAU,CAAC,IAAiE,EAAA;AAC1E,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IACtH;uGA3IW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAX,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA;;2FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCNY,cAAc,CAAA;AACR,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAEjC,IAAA,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU;IAErD,YAAY,GAAA;AACV,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;IAChD;AAEA,IAAA,aAAa,CAAC,YAAoB,EAAA;AAChC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;IACxE;IAEA,mBAAmB,GAAA;AACjB,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;IACvD;IAEA,iBAAiB,GAAA;AACf,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IAClD;uGAnBW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAd,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cADD,MAAM,EAAA,CAAA;;2FACnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCErB,cAAc,CAAA;AACR,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAEjC,IAAA,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU;IAErD,YAAY,GAAA;AACV,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;IAChD;AAEA,IAAA,UAAU,CAAC,IAUV,EAAA;AACC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClD;AAEA,IAAA,aAAa,CAAC,IAAiD,EAAA;AAC7D,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACrD;uGAzBW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAd,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cADD,MAAM,EAAA,CAAA;;2FACnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACL5B,SAAU,cAAc,CAAC,MAAW,EAAE,QAAgB,EAAA;IAC1D,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;IACnD;AAEA,IAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AACrB,QAAA,MAAM,IAAI,KAAK,CACb,aAAa,QAAQ,CAAA,oHAAA,CAAsH,CAC5I;IACH;AACF;;MCJa,gBAAgB,CAAA;AACV,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAElD,IAAA,SAAS;AAET,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAiC;AACjE,QAAA,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC;AACnC,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;IACnC;AAEA,IAAA,MAAM,CAAC,IAA2C,EAAA;AAChD,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjD;AAEA,IAAA,OAAO,CAAC,IAA0B,EAAA;AAChC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD;AAEA,IAAA,UAAU,CAAC,IAA0B,EAAA;AACnC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACrD;AAEA,IAAA,UAAU,CAAC,IAA6C,EAAA;AACtD,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACrD;AAEA,IAAA,OAAO,CAAC,IAA+B,EAAA;AACrC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD;AAEA,IAAA,SAAS,CAAC,IAA6C,EAAA;AACrD,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACpD;AAEA,IAAA,mBAAmB,CAAC,IAA0B,EAAA;AAC5C,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9D;AAEA,IAAA,gBAAgB,CAAC,IAAuE,EAAA;AACtF,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC3D;uGAzCW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cADH,MAAM,EAAA,CAAA;;2FACnB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCCrB,cAAc,CAAA;AACR,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAElD,IAAA,OAAO;AAEP,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAA+B;AAC/D,QAAA,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC;AACjC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;IAC/B;AAEA,IAAA,UAAU,CAAC,IAAgF,EAAA;AACzF,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACnD;IAEA,gBAAgB,GAAA;AACd,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IACrD;AAEA,IAAA,aAAa,CAAC,IAAoB,EAAA;AAChC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACtD;AAEA,IAAA,aAAa,CAAC,IAAkC,EAAA;AAC9C,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACtD;uGAzBW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAd,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cADD,MAAM,EAAA,CAAA;;2FACnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCErB,mBAAmB,CAAA;AACb,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACjC,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAElD,IAAA,KAAK;AAEL,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAA8B;AAC9D,QAAA,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM;IAC5B;AAEA,IAAA,MAAM,CAAC,IAQN,EAAA;QACC,OAAO,KAAK,CAAC,MAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAC/E,SAAS,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAChF;IACH;AAEA,IAAA,IAAI,CAAC,IAAiD,EAAA;AACpD,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C;uGA5BW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADN,MAAM,EAAA,CAAA;;2FACnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCCrB,eAAe,CAAA;AACT,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACjC,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAElD,IAAA,QAAQ;AAER,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAgC;AAChE,QAAA,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;IACjC;AAEA,IAAA,cAAc,CAAC,IAAoC,EAAA;QACjD,OAAO,KAAK,CAAC,MAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CACjF,SAAS,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAChF;IACH;AAEA,IAAA,mBAAmB,CAAC,IAAmF,EAAA;AACrG,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC7D;AAEA,IAAA,oBAAoB,CAAC,IAAgG,EAAA;AACnH,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC9D;AAEA,IAAA,WAAW,CAAC,IAAoC,EAAA;AAC9C,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACrD;AAEA,IAAA,aAAa,CAAC,IAAsD,EAAA;AAClE,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACvD;uGAhCW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAf,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cADF,MAAM,EAAA,CAAA;;2FACnB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCArB,aAAa,CAAA;AACP,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAElD,IAAA,MAAM;AAEN,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAA8B;AAC9D,QAAA,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;IAC7B;AAEA,IAAA,MAAM,CAAC,IAMN,EAAA;AACC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC;uGAnBW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAb,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cADA,MAAM,EAAA,CAAA;;2FACnB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCCrB,gBAAgB,CAAA;AACV,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAElD,IAAA,SAAS;AAET,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAiC;AACjE,QAAA,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC;AACnC,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;IACnC;AAEA,IAAA,MAAM,CAAC,IAAoH,EAAA;AACzH,QAAA,OAAO,KAAK,CAAC,MAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjF;AAEA,IAAA,MAAM,CAAC,IAA6C,EAAA;AAClD,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjD;uGAjBW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cADH,MAAM,EAAA,CAAA;;2FACnB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCCrB,YAAY,CAAA;AACN,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAElD,IAAA,KAAK;AAEL,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAA6B;AAC7D,QAAA,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC;AAC/B,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;IAC3B;AAEA,IAAA,OAAO,CAAC,IAAmC,EAAA;AACzC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C;AAEA,IAAA,eAAe,CAAC,IAA6C,EAAA;AAC3D,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACtD;AAEA,IAAA,OAAO,CAAC,IAAmE,EAAA;AACzE,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C;AAEA,IAAA,SAAS,CAAC,IAAwB,EAAA;AAChC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAChD;AAEA,IAAA,gBAAgB,CAAC,IAAwB,EAAA;AACvC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACvD;AAEA,IAAA,iBAAiB,CAAC,IAA8B,EAAA;AAC9C,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxD;AAEA,IAAA,kBAAkB,CAAC,IAAwB,EAAA;AACzC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzD;AAEA,IAAA,eAAe,CAAC,IAAwB,EAAA;AACtC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACtD;IAEA,iBAAiB,GAAA;AACf,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;IACpD;AAEA,IAAA,UAAU,CAAC,IAAwB,EAAA;AACjC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACjD;AAEA,IAAA,aAAa,CAAC,IAA8D,EAAA;AAC1E,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACpD;AAEA,IAAA,mBAAmB,CAAC,IAAoC,EAAA;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC;IAC7C;uGAzDW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADC,MAAM,EAAA,CAAA;;2FACnB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCCrB,mBAAmB,CAAA;AACb,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAElD,IAAA,YAAY;AAEZ,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAoC;AACpE,QAAA,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC;AACtC,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY;IACzC;AAEA,IAAA,kBAAkB,CAAC,IAMlB,EAAA;AACC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD;AAEA,IAAA,SAAS,CAAC,IAAsB,EAAA;AAC9B,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvD;IAEA,IAAI,GAAA;AACF,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC9C;AAEA,IAAA,SAAS,CAAC,IAAmE,EAAA;AAC3E,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvD;AAEA,IAAA,mBAAmB,CAAC,IAAmF,EAAA;AACrG,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACjE;AAEA,IAAA,MAAM,CAAC,IAQN,EAAA;AACC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD;AAEA,IAAA,MAAM,CAAC,IAAgC,EAAA;AACrC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD;AAEA,IAAA,YAAY,CAAC,IAA4G,EAAA;AACvH,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1D;AAEA,IAAA,gBAAgB,CAAC,IAA8B,EAAA;AAC7C,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC9D;AAEA,IAAA,gBAAgB,CAAC,IAA8B,EAAA;AAC7C,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC9D;AAEA,IAAA,gBAAgB,CAAC,IAA8B,EAAA;AAC7C,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC9D;AAEA,IAAA,aAAa,CAAC,IAAoB,EAAA;AAChC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3D;AAEA,IAAA,eAAe,CAAC,IAAiC,EAAA;AAC/C,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7D;IAEA,mBAAmB,GAAA;AACjB,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;IAC7D;IAEA,WAAW,CACT,OASI,EAAE,EAAA;AAEN,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzD;AAEA,IAAA,YAAY,CAAC,IAA0D,EAAA;AACrE,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1D;AAEA,IAAA,iBAAiB,CAAC,IAA4E,EAAA;AAC5F,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC/D;IAEA,eAAe,GAAA;AACb,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;IACzD;AAEA,IAAA,KAAK,CAAC,IAAiC,EAAA;AACrC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnD;AAEA,IAAA,UAAU,CAAC,IAA+C,EAAA;AACxD,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACxD;AAEA,IAAA,SAAS,CAAC,IAAiC,EAAA;AACzC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvD;AAEA,IAAA,UAAU,CAAC,IAA8G,EAAA;AACvH,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACxD;AAEA,IAAA,UAAU,CAAC,IAAiD,EAAA;AAC1D,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACxD;AAEA,IAAA,aAAa,CAAC,IAAyB,EAAA;AACrC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3D;IAEA,cAAc,GAAA;AACZ,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;IACxD;AAEA,IAAA,eAAe,CAAC,IAAwB,EAAA;AACtC,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7D;AAEA,IAAA,aAAa,CAAC,IAAwC,EAAA;AACpD,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3D;AAEA,IAAA,gBAAgB,CAAC,IAAwC,EAAA;AACvD,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC9D;uGAlJW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADN,MAAM,EAAA,CAAA;;2FACnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCDrB,wBAAwB,GAAG,IAAI,cAAc,CAAoB,oBAAoB;AAElG,MAAM,cAAc,GAA+B,EAAE;AAE/C,SAAU,iBAAiB,CAAC,OAA0B,EAAA;IAC1D,MAAM,MAAM,GAAsB,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE;;IAGnE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE;QACvC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM;IACzC;AAEA,IAAA,OAAO,wBAAwB,CAAC,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;AACzG;;ACZA;;AAEG;SACa,sBAAsB,CAAC,QAAA,GAAqB,CAAC,QAAQ,CAAC,EAAA;AACpE,IAAA,OAAO,MAAK;AACV,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;AAChC,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,MAAM,UAAU,GAAG,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC3G,IAAA,CAAC;AACH;AAEA;;AAEG;SACa,kBAAkB,CAAC,QAAA,GAAqB,CAAC,GAAG,CAAC,EAAA;AAC3D,IAAA,OAAO,MAAK;AACV,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;AAChC,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC3G,IAAA,CAAC;AACH;AAEA;;;AAGG;AACG,SAAU,OAAO,CAAC,aAAuB,EAAE,UAAA,GAAuB,CAAC,eAAe,CAAC,EAAA;AACvF,IAAA,OAAO,MAAK;AACV,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;AAChC,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAE7B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAC5B,GAAG,CAAC,CAAC,OAAO,KAAI;YACd,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC7B,gBAAA,OAAO,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC;YACzC;AAEA,YAAA,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI;AAChC,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,gBAAA,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/C,oBAAA,OAAO,IAAI;gBACb;YACF;AAAO,iBAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACnC,gBAAA,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAChC,oBAAA,OAAO,IAAI;gBACb;YACF;AAEA,YAAA,OAAO,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC;QACzC,CAAC,CAAC,CACH;AACH,IAAA,CAAC;AACH;;ACtDM,SAAU,WAAW,CACzB,IAA0F,EAAA;IAI1F,OAAO;AACL,QAAA,WAAW,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC;KAC5B;AACH;;ACXA;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ngx-better-auth.mjs","sources":["../../../src/lib/services/main.service.ts","../../../src/lib/utils/email.util.ts","../../../src/lib/services/auth.service.ts","../../../src/lib/services/session.service.ts","../../../src/lib/services/account.service.ts","../../../src/lib/utils/validate-plugin.ts","../../../src/lib/services/two-factor.service.ts","../../../src/lib/services/passkey.service.ts","../../../src/lib/services/generic-oauth.service.ts","../../../src/lib/services/email-otp.service.ts","../../../src/lib/services/one-tap.service.ts","../../../src/lib/services/magic-link.service.ts","../../../src/lib/services/admin.service.ts","../../../src/lib/services/organization.service.ts","../../../src/lib/providers.ts","../../../src/lib/guards/auth-guard.utils.ts","../../../src/lib/guards/auth-guard.factory.ts","../../../src/ngx-better-auth.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core'\nimport { BETTER_AUTH_CONFIG_TOKEN } from '../providers'\nimport { createAuthClient } from 'better-auth/client'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MainService {\n private readonly config = inject(BETTER_AUTH_CONFIG_TOKEN)\n\n readonly authClient = createAuthClient({\n ...this.config,\n })\n\n mapData<T>(data: { data: T; error: Error }): T {\n if (data.error) {\n throw data.error\n }\n return data.data\n }\n}\n","export function isEmail(email: string): boolean {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\n return emailRegex.test(email)\n}\n","import { computed, inject, Injectable, signal } from '@angular/core'\nimport { BetterFetchError } from 'better-auth/client'\nimport { AuthSession, Provider } from '../models'\nimport { defer, filter, map, Observable, shareReplay, switchMap, tap } from 'rxjs'\nimport { MainService } from './main.service'\nimport { SocialProviderList } from 'better-auth/social-providers'\nimport { isEmail } from '../utils/email.util'\nimport { logger } from 'better-auth'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n private readonly mainService = inject(MainService)\n\n private readonly client = this.mainService.authClient\n\n /**\n * Current authenticated session\n */\n readonly session = signal<AuthSession | null>(null)\n\n /**\n * Whether there is an active session\n */\n readonly isLoggedIn = computed(() => !!this.session()?.session)\n\n /**\n * Observable stream of the session state. Emits only when the session is resolved (not pending).\n * This is intended for guards and other async operations.\n */\n readonly sessionState$!: Observable<AuthSession | null>\n\n constructor() {\n this.session$()\n\n const useSession$ = new Observable<{\n data: AuthSession | null\n error: BetterFetchError | null\n isPending: boolean\n }>((subscriber) => {\n this.client.useSession.subscribe((value) => subscriber.next(value))\n })\n\n this.sessionState$ = useSession$.pipe(\n filter((session) => !session.isPending),\n map((session) => {\n if (session.error) {\n return null\n }\n return session.data\n }),\n shareReplay(1),\n )\n }\n\n /**\n * Asynchronously checks if the user is authenticated.\n * Ideal for route guards.\n * @returns An Observable that emits true for an active session, and false otherwise.\n */\n isLoggedIn$(): Observable<boolean> {\n return this.sessionState$.pipe(map((session) => !!session?.session))\n }\n\n private session$() {\n this.client.useSession.subscribe((session) => {\n if (session.isPending) {\n this.session.set(null)\n return\n }\n if (session.error) {\n const error: BetterFetchError = session.error\n if (error.status !== 401) {\n console.error('Error fetching session:', error)\n }\n this.session.set(null)\n return\n }\n this.session.set(session.data)\n })\n }\n\n /**\n * pass either email or username to sign in. Needs username plugin enabled to use username.\n * @param data : { email?: string; username?: string; password: string; rememberMe?: boolean }\n */\n signIn(data: { login: string; password: string; rememberMe?: boolean }) {\n if (isEmail(data.login)) {\n return this.signInEmail({ email: data.login, password: data.password, rememberMe: data.rememberMe })\n } else {\n return this.signInUsername({ username: data.login, password: data.password, rememberMe: data.rememberMe })\n }\n }\n\n signInEmail(data: { email: string; password: string; rememberMe?: boolean }) {\n return defer(() => this.client.signIn.email(data)).pipe(switchMap(() => this.sessionState$.pipe(filter((s) => s !== null))))\n }\n\n signInUsername(data: { username: string; password: string; rememberMe?: boolean }) {\n return defer(() => (this.client as any).signIn.username(data)).pipe(switchMap(() => this.sessionState$.pipe(filter((s) => s !== null))))\n }\n\n /**\n * Sign up a new user using email and password.\n *\n * Parameters username and displayUsername can be used if the username's plugin is enabled.\n * @param data\n */\n signUpEmail(data: { name: string; email: string; password: string; username: string; displayUsername?: string }) {\n return defer(() => this.client.signUp.email(data)).pipe(switchMap(() => this.sessionState$.pipe(filter((s) => s !== null))))\n }\n\n signInProvider(provider: Provider) {\n return defer(() => this.client.signIn.social({ provider })).pipe(switchMap(() => this.sessionState$.pipe(filter((s) => s !== null))))\n }\n\n signOut() {\n return defer(() => this.client.signOut()).pipe(switchMap(() => this.sessionState$.pipe(filter((s) => s === null))))\n }\n\n sendVerificationEmail(data: { email: string; callbackURL?: string }) {\n return defer(() => this.client.sendVerificationEmail(data))\n }\n\n requestPasswordReset(data: { email: string; redirectTo?: string }) {\n return defer(() => this.client.requestPasswordReset(data))\n }\n\n resetPassword(data: { newPassword: string; token: string }) {\n return defer(() => this.client.resetPassword(data))\n }\n\n changePassword(data: { currentPassword: string; newPassword: string; revokeOtherSessions?: boolean }) {\n return defer(() => this.client.changePassword(data))\n }\n\n changeEmail(data: { newEmail: string; callbackURL?: string }) {\n return defer(() => this.client.changeEmail(data))\n }\n\n updateUser(data: { name?: string; image?: string; username?: string; displayUsername?: string }) {\n return defer(() => this.client.updateUser(data))\n }\n\n isUsernameAvailable(data: { username: string }) {\n return defer(() => (this.client as any).isUsernameAvailable(data))\n }\n\n deleteUser(data: { callbackURL?: string; token?: string; password?: string }) {\n return defer(() => this.client.deleteUser(data)).pipe(tap(() => this.sessionState$.pipe(filter((s) => s === null))))\n }\n}\n","import { inject, Injectable } from '@angular/core'\nimport { defer, map, Observable } from 'rxjs'\nimport { MainService } from './main.service'\nimport { Session } from '../models'\n\n@Injectable({ providedIn: 'root' })\nexport class SessionService {\n private readonly mainService = inject(MainService)\n\n private readonly client = this.mainService.authClient\n\n listSessions(): Observable<Session[]> {\n return defer(() => this.client.listSessions()).pipe(map((data) => this.mainService.mapData<Session[]>(data as any)))\n }\n\n revokeSession(sessionToken: string): Observable<{ success: boolean }> {\n return defer(() => this.client.revokeSession({ token: sessionToken })).pipe(\n map((data) => this.mainService.mapData<{ success: boolean }>(data as any)),\n )\n }\n\n revokeOtherSessions(): Observable<{ success: boolean }> {\n return defer(() => this.client.revokeOtherSessions()).pipe(map((data) => this.mainService.mapData<{ success: boolean }>(data as any)))\n }\n\n revokeAllSessions(): Observable<{ success: boolean }> {\n return defer(() => this.client.revokeSessions()).pipe(map((data) => this.mainService.mapData<{ success: boolean }>(data as any)))\n }\n}\n","import { inject, Injectable } from '@angular/core'\nimport { defer, map, Observable } from 'rxjs'\nimport { MainService } from './main.service'\nimport { Account, Provider } from '../models'\n\n@Injectable({ providedIn: 'root' })\nexport class AccountService {\n private readonly mainService = inject(MainService)\n\n private readonly client = this.mainService.authClient\n\n listAccounts(): Observable<Account[]> {\n return defer(() => this.client.listAccounts()).pipe(map((data) => this.mainService.mapData<Account[]>(data as any)))\n }\n\n linkSocial(data: {\n provider: Provider\n callbackURL?: string\n scopes?: string[]\n idToken?: {\n token: string\n nonce?: string\n accessToken?: string\n refreshToken?: string\n }\n }): Observable<{ url: string; redirect: boolean }> {\n return defer(() => this.client.linkSocial(data)).pipe(\n map((data) => this.mainService.mapData<{ url: string; redirect: boolean }>(data as any)),\n )\n }\n\n unlinkAccount(data: { providerId: Provider; accountId: string }): Observable<{ status: boolean }> {\n return defer(() => this.client.unlinkAccount(data)).pipe(map((data) => this.mainService.mapData<{ status: boolean }>(data as any)))\n }\n}\n","export function validatePlugin(client: any, property: string) {\n if (!client) {\n throw new Error('AuthClient is not initialized.')\n }\n\n if (!client[property]) {\n throw new Error(\n `Property '${property}' is not available on authClient. Please ensure the plugin providing this property is included in the plugins array.`,\n )\n }\n}\n","import { inject, Injectable } from '@angular/core'\nimport { defer } from 'rxjs'\nimport { validatePlugin } from '../utils/validate-plugin'\nimport { MainService } from './main.service'\n\n@Injectable({ providedIn: 'root' })\nexport class TwoFactorService {\n private readonly mainService = inject(MainService)\n\n twoFactor: any\n\n constructor() {\n const client = this.mainService.authClient as { twoFactor?: any }\n validatePlugin(client, 'twoFactor')\n this.twoFactor = client.twoFactor\n }\n\n enable(data: { password: string; issuer?: string }) {\n return defer(() => this.twoFactor.enable(data))\n }\n\n disable(data: { password: string }) {\n return defer(() => this.twoFactor.disable(data))\n }\n\n getTotpUri(data: { password: string }) {\n return defer(() => this.twoFactor.getTotpUri(data))\n }\n\n verifyTotp(data: { code: string; trustDevice?: boolean }) {\n return defer(() => this.twoFactor.verifyTotp(data))\n }\n\n sendOtp(data: { trustDevice?: boolean }) {\n return defer(() => this.twoFactor.sendOtp(data))\n }\n\n verifyOtp(data: { code: string; trustDevice?: boolean }) {\n return defer(() => this.twoFactor.verifyOtp(data))\n }\n\n generateBackupCodes(data: { password: string }) {\n return defer(() => this.twoFactor.generateBackupCodes(data))\n }\n\n verifyBackupCode(data: { code: string; disableSession?: boolean; trustDevice?: boolean }) {\n return defer(() => this.twoFactor.verifyBackupCode(data))\n }\n}\n","import { inject, Injectable } from '@angular/core'\nimport { defer } from 'rxjs'\nimport { MainService } from './main.service'\nimport { validatePlugin } from '../utils/validate-plugin'\n\n@Injectable({ providedIn: 'root' })\nexport class PasskeyService {\n private readonly mainService = inject(MainService)\n\n passkey: any\n\n constructor() {\n const client = this.mainService.authClient as { passkey?: any }\n validatePlugin(client, 'passkey')\n this.passkey = client.passkey\n }\n\n addPasskey(data: { name?: string; authenticatorAttachment?: 'platform' | 'cross-platform' }) {\n return defer(() => this.passkey.addPasskey(data))\n }\n\n listUserPasskeys() {\n return defer(() => this.passkey.listUserPasskeys())\n }\n\n deletePasskey(data: { id: string }) {\n return defer(() => this.passkey.deletePasskey(data))\n }\n\n updatePasskey(data: { id: string; name: string }) {\n return defer(() => this.passkey.updatePasskey(data))\n }\n}\n","import { inject, Injectable } from '@angular/core'\nimport { defer, filter, switchMap } from 'rxjs'\nimport { MainService } from './main.service'\nimport { validatePlugin } from '../utils/validate-plugin'\nimport { AuthService } from './auth.service'\n\n@Injectable({ providedIn: 'root' })\nexport class GenericOauthService {\n private readonly mainService = inject(MainService)\n private readonly authService = inject(AuthService)\n\n oauth: any\n\n constructor() {\n const client = this.mainService.authClient as { oauth2?: any }\n validatePlugin(client, 'oauth2')\n this.oauth = client.oauth2\n }\n\n signIn(data: {\n providerId: string\n callbackURL?: string\n errorCallbackURL?: string\n newUserCallbackURL?: string\n disableRedirect?: boolean\n scopes?: string[]\n requestSignUp?: boolean\n }) {\n return defer(() => (this.mainService.authClient.signIn as any).oauth2(data)).pipe(\n switchMap(() => this.authService.sessionState$.pipe(filter((s) => s !== null))),\n )\n }\n\n link(data: { providerId: string; callbackURL: string }) {\n return defer(() => this.oauth.link(data))\n }\n}\n","import { inject, Injectable } from '@angular/core'\nimport { defer, filter, switchMap } from 'rxjs'\nimport { validatePlugin } from '../utils/validate-plugin'\nimport { MainService } from './main.service'\nimport { AuthService } from './auth.service'\n\n@Injectable({ providedIn: 'root' })\nexport class EmailOtpService {\n private readonly mainService = inject(MainService)\n private readonly authService = inject(AuthService)\n\n emailOtp: any\n\n constructor() {\n const client = this.mainService.authClient as { emailOtp?: any }\n validatePlugin(client, 'emailOtp')\n this.emailOtp = client.emailOtp\n }\n\n signInEmailOtp(data: { email: string; otp: string }) {\n return defer(() => (this.mainService.authClient.signIn as any).emailOtp(data)).pipe(\n switchMap(() => this.authService.sessionState$.pipe(filter((s) => s !== null))),\n )\n }\n\n sendVerificationOtp(data: { email: string; type: 'sign-in' | 'email-verification' | 'forget-password' }) {\n return defer(() => this.emailOtp.sendVerificationOtp(data))\n }\n\n checkVerificationOtp(data: { email: string; type: 'sign-in' | 'email-verification' | 'forget-password'; otp: string }) {\n return defer(() => this.emailOtp.checkVerificationOtp(data))\n }\n\n verifyEmail(data: { email: string; otp: string }) {\n return defer(() => this.emailOtp.verifyEmail(data))\n }\n\n resetPassword(data: { email: string; otp: string; password: string }) {\n return defer(() => this.emailOtp.resetPassword(data))\n }\n}\n","import { inject, Injectable } from '@angular/core'\nimport { defer } from 'rxjs'\nimport { validatePlugin } from '../utils/validate-plugin'\nimport { MainService } from './main.service'\n\n@Injectable({ providedIn: 'root' })\nexport class OneTapService {\n private readonly mainService = inject(MainService)\n\n oneTap: any\n\n constructor() {\n const client = this.mainService.authClient as { oneTap?: any }\n validatePlugin(client, 'oneTap')\n this.oneTap = client.oneTap\n }\n\n signIn(data?: {\n fetchOptions?: {\n onSuccess: () => void\n }\n callbackURL?: string\n onPromptNotification?: (notification: any) => void\n }) {\n return defer(() => this.oneTap(data))\n }\n}\n","import { inject, Injectable } from '@angular/core'\nimport { defer } from 'rxjs'\nimport { validatePlugin } from '../utils/validate-plugin'\nimport { MainService } from './main.service'\n\n@Injectable({ providedIn: 'root' })\nexport class MagicLinkService {\n private readonly mainService = inject(MainService)\n\n magicLink: any\n\n constructor() {\n const client = this.mainService.authClient as { magicLink?: any }\n validatePlugin(client, 'magicLink')\n this.magicLink = client.magicLink\n }\n\n signIn(data: { email: string; name?: string; callbackURL?: string; newUserCallbackURL?: string; errorCallbackURL?: string }) {\n return defer(() => (this.mainService.authClient.signIn as any).magicLink(data))\n }\n\n verify(data: { token: string; callbackURL?: string }) {\n return defer(() => this.magicLink.verify(data))\n }\n}\n","import { inject, Injectable } from '@angular/core'\nimport { defer } from 'rxjs'\nimport { validatePlugin } from '../utils/validate-plugin'\nimport { MainService } from './main.service'\n\n@Injectable({ providedIn: 'root' })\nexport class AdminService {\n private readonly mainService = inject(MainService)\n\n admin: any\n\n constructor() {\n const client = this.mainService.authClient as { admin?: any }\n validatePlugin(client, 'admin')\n this.admin = client.admin\n }\n\n setRole(data: { userId: string; role: any }) {\n return defer(() => this.admin.setRole(data))\n }\n\n setUserPassword(data: { userId: string; newPassword: string }) {\n return defer(() => this.admin.setUserPassword(data))\n }\n\n banUser(data: { userId: string; banReason?: string; banExpiresIn?: number }) {\n return defer(() => this.admin.banUser(data))\n }\n\n unbanUser(data: { userId: string }) {\n return defer(() => this.admin.unbanUser(data))\n }\n\n listUserSessions(data: { userId: string }) {\n return defer(() => this.admin.listUserSessions(data))\n }\n\n revokeUserSession(data: { sessionToken: string }) {\n return defer(() => this.admin.revokeUserSession(data))\n }\n\n revokeUserSessions(data: { userId: string }) {\n return defer(() => this.admin.revokeUserSessions(data))\n }\n\n impersonateUser(data: { userId: string }) {\n return defer(() => this.admin.impersonateUser(data))\n }\n\n stopImpersonating() {\n return defer(() => this.admin.stopImpersonating())\n }\n\n removeUser(data: { userId: string }) {\n return defer(() => this.admin.removeUser(data))\n }\n\n hasPermission(data: { userId?: string; permission?: any; permissions?: any }) {\n return defer(() => this.admin.hasPermission(data))\n }\n\n checkRolePermission(data: { role: any; permission: any }) {\n return this.admin.checkRolePermission(data)\n }\n}\n","import { inject, Injectable } from '@angular/core'\nimport { defer } from 'rxjs'\nimport { validatePlugin } from '../utils/validate-plugin'\nimport { MainService } from './main.service'\n\n@Injectable({ providedIn: 'root' })\nexport class OrganizationService {\n private readonly mainService = inject(MainService)\n\n organization: any\n\n constructor() {\n const client = this.mainService.authClient as { organization?: any }\n validatePlugin(client, 'organization')\n this.organization = client.organization\n }\n\n createOrganization(data: {\n name: string\n slug: string\n logo?: string\n metadata?: Record<string, any>\n keepCurrentActiveOrganization?: boolean\n }) {\n return defer(() => this.organization.create(data))\n }\n\n checkSlug(data: { slug: string }) {\n return defer(() => this.organization.checkSlug(data))\n }\n\n list() {\n return defer(() => this.organization.list())\n }\n\n setActive(data: { organizationId?: string | null; organizationSlug?: string }) {\n return defer(() => this.organization.setActive(data))\n }\n\n getFullOrganization(data: { organizationId?: string; organizationSlug?: string; membersLimit?: number }) {\n return defer(() => this.organization.getFullOrganization(data))\n }\n\n update(data: {\n data: {\n name?: string\n slug?: string\n logo?: string\n metadata?: Record<string, any>\n }\n organizationId?: string\n }) {\n return defer(() => this.organization.update(data))\n }\n\n delete(data: { organizationId: string }) {\n return defer(() => this.organization.delete(data))\n }\n\n inviteMember(data: { email: string; role: string | string[]; organizationId?: string; resend?: boolean; teamId?: string }) {\n return defer(() => this.organization.inviteMember(data))\n }\n\n acceptInvitation(data: { invitationId: string }) {\n return defer(() => this.organization.acceptInvitation(data))\n }\n\n cancelInvitation(data: { invitationId: string }) {\n return defer(() => this.organization.cancelInvitation(data))\n }\n\n rejectInvitation(data: { invitationId: string }) {\n return defer(() => this.organization.rejectInvitation(data))\n }\n\n getInvitation(data: { id: string }) {\n return defer(() => this.organization.getInvitation(data))\n }\n\n listInvitations(data: { organizationId?: string }) {\n return defer(() => this.organization.listInvitations(data))\n }\n\n listUserInvitations() {\n return defer(() => this.organization.listUserInvitations())\n }\n\n listMembers(\n data: {\n organizationId?: string\n limit?: number\n offset?: number\n sortBy?: string\n sortDirection?: 'asc' | 'desc'\n filterField?: string\n filterOperator?: 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'nin' | 'contains'\n filterValue?: string\n } = {},\n ) {\n return defer(() => this.organization.listMembers(data))\n }\n\n removeMember(data: { memberIdOrEmail: string; organizationId?: string }) {\n return defer(() => this.organization.removeMember(data))\n }\n\n updateMemberRoles(data: { memberId: string; role: string | string[]; organizationId?: string }) {\n return defer(() => this.organization.updateMemberRoles(data))\n }\n\n getActiveMember() {\n return defer(() => this.organization.getActiveMember())\n }\n\n leave(data: { organizationId?: string }) {\n return defer(() => this.organization.leave(data))\n }\n\n createTeam(data: { name: string; organizationId?: string }) {\n return defer(() => this.organization.createTeam(data))\n }\n\n listTeams(data: { organizationId?: string }) {\n return defer(() => this.organization.listTeams(data))\n }\n\n updateTeam(data: { teamId: string; data: { name?: string; organizationId?: string; createdAt?: Date; updatedAt?: Date } }) {\n return defer(() => this.organization.updateTeam(data))\n }\n\n removeTeam(data: { teamId: string; organizationId?: string }) {\n return defer(() => this.organization.removeTeam(data))\n }\n\n setActiveTeam(data: { teamId?: string }) {\n return defer(() => this.organization.setActiveTeam(data))\n }\n\n listUsersTeams() {\n return defer(() => this.organization.listUsersTeams())\n }\n\n listTeamMembers(data: { teamId: string }) {\n return defer(() => this.organization.listTeamMembers(data))\n }\n\n addTeamMember(data: { teamId: string; userId: string }) {\n return defer(() => this.organization.addTeamMember(data))\n }\n\n removeTeamMember(data: { teamId: string; userId: string }) {\n return defer(() => this.organization.removeTeamMember(data))\n }\n}\n","import { EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core'\nimport { type BetterAuthOptions } from 'better-auth'\nimport { AuthService } from './services'\n\nexport const BETTER_AUTH_CONFIG_TOKEN = new InjectionToken<BetterAuthOptions>('BETTER_AUTH_CONFIG')\n\nconst DEFAULT_CONFIG: Partial<BetterAuthOptions> = {}\n\nexport function provideBetterAuth(options: BetterAuthOptions): EnvironmentProviders {\n const config: BetterAuthOptions = { ...DEFAULT_CONFIG, ...options }\n\n // if baseURL is not a url, it might be because of a proxy in development\n if (!config.baseURL?.startsWith('http')) {\n config.baseURL = window.location.origin\n }\n\n return makeEnvironmentProviders([{ provide: BETTER_AUTH_CONFIG_TOKEN, useValue: config }, AuthService])\n}\n","import { inject } from '@angular/core'\nimport { Router, UrlTree } from '@angular/router'\nimport { AuthService } from '../services'\nimport { map, Observable } from 'rxjs'\n\n/**\n * Redirects unauthorized users to the specified commands (route).\n */\nexport function redirectUnauthorizedTo(commands: string[] = ['/login']): () => Observable<UrlTree | boolean> {\n return () => {\n const auth = inject(AuthService)\n const router = inject(Router)\n return auth.isLoggedIn$().pipe(map((isLoggedIn) => (isLoggedIn ? true : router.createUrlTree(commands))))\n }\n}\n\n/**\n * Redirects logged-in users to the specified commands (route).\n */\nexport function redirectLoggedInTo(commands: string[] = ['/']): () => Observable<UrlTree | boolean> {\n return () => {\n const auth = inject(AuthService)\n const router = inject(Router)\n return auth.isLoggedIn$().pipe(map((isLoggedIn) => (isLoggedIn ? router.createUrlTree(commands) : true)))\n }\n}\n\n/**\n * Allows access only to users with at least one of the specified roles.\n * Redirects unauthorized users to the specified commands (route).\n */\nexport function hasRole(requiredRoles: string[], redirectTo: string[] = ['/unauthorized']): () => Observable<UrlTree | boolean> {\n return () => {\n const auth = inject(AuthService)\n const router = inject(Router)\n\n return auth.sessionState$.pipe(\n map((session) => {\n if (!session || !session.user) {\n return router.createUrlTree(redirectTo)\n }\n\n const role = session?.user?.role\n if (Array.isArray(role)) {\n if (role.some((r) => requiredRoles.includes(r))) {\n return true\n }\n } else if (typeof role === 'string') {\n if (requiredRoles.includes(role)) {\n return true\n }\n }\n\n return router.createUrlTree(redirectTo)\n }),\n )\n }\n}\n","import { CanActivateFn, UrlTree } from '@angular/router'\nimport { Observable } from 'rxjs'\n\nexport function canActivate(\n pipe: () => Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree,\n): {\n canActivate: [CanActivateFn]\n} {\n return {\n canActivate: [() => pipe()],\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, EnvironmentProviders } from '@angular/core';
|
|
3
|
-
import * as better_auth from 'better-auth';
|
|
4
3
|
import { BetterAuthOptions } from 'better-auth';
|
|
5
|
-
import {
|
|
4
|
+
import { User } from 'better-auth/types';
|
|
6
5
|
import { SocialProviderList } from 'better-auth/social-providers';
|
|
7
6
|
import * as rxjs from 'rxjs';
|
|
8
7
|
import { Observable } from 'rxjs';
|
|
@@ -12,6 +11,16 @@ import { UrlTree, CanActivateFn } from '@angular/router';
|
|
|
12
11
|
declare const BETTER_AUTH_CONFIG_TOKEN: InjectionToken<BetterAuthOptions>;
|
|
13
12
|
declare function provideBetterAuth(options: BetterAuthOptions): EnvironmentProviders;
|
|
14
13
|
|
|
14
|
+
interface Session {
|
|
15
|
+
id: string;
|
|
16
|
+
userId: string;
|
|
17
|
+
expiresAt: Date;
|
|
18
|
+
createdAt: Date;
|
|
19
|
+
updatedAt: Date;
|
|
20
|
+
token: string;
|
|
21
|
+
ipAddress?: string | null | undefined;
|
|
22
|
+
userAgent?: string | null | undefined;
|
|
23
|
+
}
|
|
15
24
|
interface AuthSession {
|
|
16
25
|
session: Session;
|
|
17
26
|
user: User & {
|
|
@@ -21,6 +30,20 @@ interface AuthSession {
|
|
|
21
30
|
|
|
22
31
|
type Provider = SocialProviderList[number];
|
|
23
32
|
|
|
33
|
+
interface Error {
|
|
34
|
+
code?: string;
|
|
35
|
+
message?: string;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
interface Account {
|
|
39
|
+
id: string;
|
|
40
|
+
provider: string;
|
|
41
|
+
createdAt: Date;
|
|
42
|
+
updatedAt: Date;
|
|
43
|
+
accountId: string;
|
|
44
|
+
scopes: string[];
|
|
45
|
+
}
|
|
46
|
+
|
|
24
47
|
declare class AuthService {
|
|
25
48
|
private readonly mainService;
|
|
26
49
|
private readonly client;
|
|
@@ -222,68 +245,15 @@ declare class AuthService {
|
|
|
222
245
|
declare class SessionService {
|
|
223
246
|
private readonly mainService;
|
|
224
247
|
private readonly client;
|
|
225
|
-
listSessions():
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
userId: string;
|
|
229
|
-
expiresAt: Date;
|
|
230
|
-
createdAt: Date;
|
|
231
|
-
updatedAt: Date;
|
|
232
|
-
token: string;
|
|
233
|
-
ipAddress?: string | null | undefined | undefined;
|
|
234
|
-
userAgent?: string | null | undefined | undefined;
|
|
235
|
-
}>[];
|
|
236
|
-
error: null;
|
|
237
|
-
} | {
|
|
238
|
-
data: null;
|
|
239
|
-
error: {
|
|
240
|
-
code?: string | undefined;
|
|
241
|
-
message?: string | undefined;
|
|
242
|
-
status: number;
|
|
243
|
-
statusText: string;
|
|
244
|
-
};
|
|
245
|
-
}>;
|
|
246
|
-
revokeSession(sessionToken: string): rxjs.Observable<{
|
|
247
|
-
data: {
|
|
248
|
-
status: boolean;
|
|
249
|
-
};
|
|
250
|
-
error: null;
|
|
251
|
-
} | {
|
|
252
|
-
data: null;
|
|
253
|
-
error: {
|
|
254
|
-
code?: string | undefined;
|
|
255
|
-
message?: string | undefined;
|
|
256
|
-
status: number;
|
|
257
|
-
statusText: string;
|
|
258
|
-
};
|
|
248
|
+
listSessions(): Observable<Session[]>;
|
|
249
|
+
revokeSession(sessionToken: string): Observable<{
|
|
250
|
+
success: boolean;
|
|
259
251
|
}>;
|
|
260
|
-
revokeOtherSessions():
|
|
261
|
-
|
|
262
|
-
status: boolean;
|
|
263
|
-
};
|
|
264
|
-
error: null;
|
|
265
|
-
} | {
|
|
266
|
-
data: null;
|
|
267
|
-
error: {
|
|
268
|
-
code?: string | undefined;
|
|
269
|
-
message?: string | undefined;
|
|
270
|
-
status: number;
|
|
271
|
-
statusText: string;
|
|
272
|
-
};
|
|
252
|
+
revokeOtherSessions(): Observable<{
|
|
253
|
+
success: boolean;
|
|
273
254
|
}>;
|
|
274
|
-
revokeAllSessions():
|
|
275
|
-
|
|
276
|
-
status: boolean;
|
|
277
|
-
};
|
|
278
|
-
error: null;
|
|
279
|
-
} | {
|
|
280
|
-
data: null;
|
|
281
|
-
error: {
|
|
282
|
-
code?: string | undefined;
|
|
283
|
-
message?: string | undefined;
|
|
284
|
-
status: number;
|
|
285
|
-
statusText: string;
|
|
286
|
-
};
|
|
255
|
+
revokeAllSessions(): Observable<{
|
|
256
|
+
success: boolean;
|
|
287
257
|
}>;
|
|
288
258
|
static ɵfac: i0.ɵɵFactoryDeclaration<SessionService, never>;
|
|
289
259
|
static ɵprov: i0.ɵɵInjectableDeclaration<SessionService>;
|
|
@@ -292,25 +262,7 @@ declare class SessionService {
|
|
|
292
262
|
declare class AccountService {
|
|
293
263
|
private readonly mainService;
|
|
294
264
|
private readonly client;
|
|
295
|
-
listAccounts():
|
|
296
|
-
data: {
|
|
297
|
-
id: string;
|
|
298
|
-
provider: string;
|
|
299
|
-
createdAt: Date;
|
|
300
|
-
updatedAt: Date;
|
|
301
|
-
accountId: string;
|
|
302
|
-
scopes: string[];
|
|
303
|
-
}[];
|
|
304
|
-
error: null;
|
|
305
|
-
} | {
|
|
306
|
-
data: null;
|
|
307
|
-
error: {
|
|
308
|
-
code?: string | undefined;
|
|
309
|
-
message?: string | undefined;
|
|
310
|
-
status: number;
|
|
311
|
-
statusText: string;
|
|
312
|
-
};
|
|
313
|
-
}>;
|
|
265
|
+
listAccounts(): Observable<Account[]>;
|
|
314
266
|
linkSocial(data: {
|
|
315
267
|
provider: Provider;
|
|
316
268
|
callbackURL?: string;
|
|
@@ -321,37 +273,15 @@ declare class AccountService {
|
|
|
321
273
|
accessToken?: string;
|
|
322
274
|
refreshToken?: string;
|
|
323
275
|
};
|
|
324
|
-
}):
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
redirect: boolean;
|
|
328
|
-
};
|
|
329
|
-
error: null;
|
|
330
|
-
} | {
|
|
331
|
-
data: null;
|
|
332
|
-
error: {
|
|
333
|
-
code?: string | undefined;
|
|
334
|
-
message?: string | undefined;
|
|
335
|
-
status: number;
|
|
336
|
-
statusText: string;
|
|
337
|
-
};
|
|
276
|
+
}): Observable<{
|
|
277
|
+
url: string;
|
|
278
|
+
redirect: boolean;
|
|
338
279
|
}>;
|
|
339
280
|
unlinkAccount(data: {
|
|
340
281
|
providerId: Provider;
|
|
341
282
|
accountId: string;
|
|
342
|
-
}):
|
|
343
|
-
|
|
344
|
-
status: boolean;
|
|
345
|
-
};
|
|
346
|
-
error: null;
|
|
347
|
-
} | {
|
|
348
|
-
data: null;
|
|
349
|
-
error: {
|
|
350
|
-
code?: string | undefined;
|
|
351
|
-
message?: string | undefined;
|
|
352
|
-
status: number;
|
|
353
|
-
statusText: string;
|
|
354
|
-
};
|
|
283
|
+
}): Observable<{
|
|
284
|
+
status: boolean;
|
|
355
285
|
}>;
|
|
356
286
|
static ɵfac: i0.ɵɵFactoryDeclaration<AccountService, never>;
|
|
357
287
|
static ɵprov: i0.ɵɵInjectableDeclaration<AccountService>;
|
|
@@ -690,4 +620,4 @@ declare function canActivate(pipe: () => Observable<boolean | UrlTree> | Promise
|
|
|
690
620
|
};
|
|
691
621
|
|
|
692
622
|
export { AccountService, AdminService, AuthService, BETTER_AUTH_CONFIG_TOKEN, EmailOtpService, GenericOauthService, MagicLinkService, OneTapService, OrganizationService, PasskeyService, SessionService, TwoFactorService, canActivate, hasRole, provideBetterAuth, redirectLoggedInTo, redirectUnauthorizedTo };
|
|
693
|
-
export type { AuthSession, Provider };
|
|
623
|
+
export type { Account, AuthSession, Error, Provider, Session };
|