@23blocks/angular 7.0.1 → 7.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.
|
@@ -736,9 +736,33 @@ class AuthenticationService {
|
|
|
736
736
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
737
737
|
// Auth-flow methods (Observable with token management)
|
|
738
738
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
739
|
+
/**
|
|
740
|
+
* Sign in with email and password.
|
|
741
|
+
* Returns an Observable that emits the sign-in response and automatically
|
|
742
|
+
* stores access/refresh tokens in token mode.
|
|
743
|
+
*
|
|
744
|
+
* @param request - Email and password credentials
|
|
745
|
+
* @returns Observable emitting SignInResponse with `user`, `accessToken`,
|
|
746
|
+
* optional `refreshToken`, `tokenType`, and `expiresIn`
|
|
747
|
+
* @example
|
|
748
|
+
* ```typescript
|
|
749
|
+
* this.authService.signIn({ email: 'user@example.com', password: 'secret' })
|
|
750
|
+
* .subscribe(({ user, accessToken }) => console.log('Signed in:', user.email));
|
|
751
|
+
* ```
|
|
752
|
+
*/
|
|
739
753
|
signIn(request) {
|
|
740
754
|
return from(this.ensureConfigured().auth.signIn(request)).pipe(tap((response) => this.storeTokens(response)));
|
|
741
755
|
}
|
|
756
|
+
/**
|
|
757
|
+
* Sign up a new user.
|
|
758
|
+
* Returns an Observable that emits the sign-up response and automatically
|
|
759
|
+
* stores tokens if email confirmation is not required.
|
|
760
|
+
*
|
|
761
|
+
* @param request - User registration data (email, password, etc.)
|
|
762
|
+
* @returns Observable emitting SignUpResponse with `user`, optional `accessToken`
|
|
763
|
+
* (absent if email confirmation is required), and optional `message`
|
|
764
|
+
* @note If email confirmation is enabled, `accessToken` will be undefined until confirmed.
|
|
765
|
+
*/
|
|
742
766
|
signUp(request) {
|
|
743
767
|
return from(this.ensureConfigured().auth.signUp(request)).pipe(tap((response) => {
|
|
744
768
|
if (this.isTokenMode && this.tokenManager && response.accessToken) {
|
|
@@ -746,6 +770,12 @@ class AuthenticationService {
|
|
|
746
770
|
}
|
|
747
771
|
}));
|
|
748
772
|
}
|
|
773
|
+
/**
|
|
774
|
+
* Sign out the current user.
|
|
775
|
+
* Invalidates the session server-side and clears locally stored tokens in token mode.
|
|
776
|
+
*
|
|
777
|
+
* @returns Observable that completes on successful sign-out
|
|
778
|
+
*/
|
|
749
779
|
signOut() {
|
|
750
780
|
return from(this.ensureConfigured().auth.signOut()).pipe(tap(() => {
|
|
751
781
|
if (this.isTokenMode && this.tokenManager) {
|
|
@@ -753,39 +783,113 @@ class AuthenticationService {
|
|
|
753
783
|
}
|
|
754
784
|
}));
|
|
755
785
|
}
|
|
786
|
+
/**
|
|
787
|
+
* Refresh the access token using a refresh token.
|
|
788
|
+
* Automatically stores the new token pair in token mode.
|
|
789
|
+
*
|
|
790
|
+
* @param request - Contains the `refreshToken` to exchange
|
|
791
|
+
* @returns Observable emitting RefreshTokenResponse with new `accessToken`,
|
|
792
|
+
* optional new `refreshToken`, `tokenType`, and `expiresIn`
|
|
793
|
+
*/
|
|
756
794
|
refreshToken(request) {
|
|
757
795
|
return from(this.ensureConfigured().auth.refreshToken(request)).pipe(tap((response) => this.storeTokens(response)));
|
|
758
796
|
}
|
|
797
|
+
/**
|
|
798
|
+
* Verify a magic link token and sign in.
|
|
799
|
+
* Automatically stores tokens on successful verification.
|
|
800
|
+
*
|
|
801
|
+
* @param request - Contains the magic link `token` from the email link
|
|
802
|
+
* @returns Observable emitting SignInResponse with `user`, `accessToken`, optional `refreshToken`
|
|
803
|
+
*/
|
|
759
804
|
verifyMagicLink(request) {
|
|
760
805
|
return from(this.ensureConfigured().auth.verifyMagicLink(request)).pipe(tap((response) => this.storeTokens(response)));
|
|
761
806
|
}
|
|
807
|
+
/**
|
|
808
|
+
* Accept an invitation and create the user's account.
|
|
809
|
+
* Automatically stores tokens on successful acceptance.
|
|
810
|
+
*
|
|
811
|
+
* @param request - Invitation token and user account details (password, etc.)
|
|
812
|
+
* @returns Observable emitting SignInResponse with the new `user`, `accessToken`,
|
|
813
|
+
* optional `refreshToken`
|
|
814
|
+
*/
|
|
762
815
|
acceptInvitation(request) {
|
|
763
816
|
return from(this.ensureConfigured().auth.acceptInvitation(request)).pipe(tap((response) => this.storeTokens(response)));
|
|
764
817
|
}
|
|
818
|
+
/**
|
|
819
|
+
* Sign in via Facebook OAuth.
|
|
820
|
+
* Automatically stores tokens on successful authentication.
|
|
821
|
+
*
|
|
822
|
+
* @param request - Facebook OAuth access token
|
|
823
|
+
* @returns Observable emitting SignInResponse with `user` and tokens
|
|
824
|
+
*/
|
|
765
825
|
facebookLogin(request) {
|
|
766
826
|
return from(this.ensureConfigured().oauth.facebookLogin(request)).pipe(tap((response) => this.storeTokens(response)));
|
|
767
827
|
}
|
|
828
|
+
/**
|
|
829
|
+
* Sign in via Google OAuth.
|
|
830
|
+
* Automatically stores tokens on successful authentication.
|
|
831
|
+
*
|
|
832
|
+
* @param request - Google OAuth access token
|
|
833
|
+
* @returns Observable emitting SignInResponse with `user` and tokens
|
|
834
|
+
*/
|
|
768
835
|
googleLogin(request) {
|
|
769
836
|
return from(this.ensureConfigured().oauth.googleLogin(request)).pipe(tap((response) => this.storeTokens(response)));
|
|
770
837
|
}
|
|
838
|
+
/**
|
|
839
|
+
* Sign in via tenant-specific login (white-label authentication).
|
|
840
|
+
* Automatically stores tokens on successful authentication.
|
|
841
|
+
*
|
|
842
|
+
* @param request - Tenant login credentials and tenant identifier
|
|
843
|
+
* @returns Observable emitting SignInResponse with `user` and tokens
|
|
844
|
+
*/
|
|
771
845
|
tenantLogin(request) {
|
|
772
846
|
return from(this.ensureConfigured().oauth.tenantLogin(request)).pipe(tap((response) => this.storeTokens(response)));
|
|
773
847
|
}
|
|
774
848
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
775
849
|
// Token Management (only applicable with provideBlocks23)
|
|
776
850
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
851
|
+
/**
|
|
852
|
+
* Get the currently stored access token.
|
|
853
|
+
* Only available in token mode (not cookie mode).
|
|
854
|
+
*
|
|
855
|
+
* @returns The access token string, or `null` if not set or in cookie mode
|
|
856
|
+
*/
|
|
777
857
|
getAccessToken() {
|
|
778
858
|
return this.tokenManager?.getAccessToken() ?? null;
|
|
779
859
|
}
|
|
860
|
+
/**
|
|
861
|
+
* Get the currently stored refresh token.
|
|
862
|
+
* Only available in token mode (not cookie mode).
|
|
863
|
+
*
|
|
864
|
+
* @returns The refresh token string, or `null` if not set or in cookie mode
|
|
865
|
+
*/
|
|
780
866
|
getRefreshToken() {
|
|
781
867
|
return this.tokenManager?.getRefreshToken() ?? null;
|
|
782
868
|
}
|
|
869
|
+
/**
|
|
870
|
+
* Manually set access and refresh tokens.
|
|
871
|
+
* Useful when tokens are obtained outside the normal auth flow
|
|
872
|
+
* (e.g., from a server-side redirect or external OAuth callback).
|
|
873
|
+
*
|
|
874
|
+
* @param accessToken - The access token to store
|
|
875
|
+
* @param refreshToken - Optional refresh token to store
|
|
876
|
+
*/
|
|
783
877
|
setTokens(accessToken, refreshToken) {
|
|
784
878
|
this.tokenManager?.setTokens(accessToken, refreshToken);
|
|
785
879
|
}
|
|
880
|
+
/**
|
|
881
|
+
* Clear all stored tokens, effectively logging the user out locally.
|
|
882
|
+
* Does NOT invalidate the session server-side — use `signOut()` for that.
|
|
883
|
+
*/
|
|
786
884
|
clearTokens() {
|
|
787
885
|
this.tokenManager?.clearTokens();
|
|
788
886
|
}
|
|
887
|
+
/**
|
|
888
|
+
* Check if the user is currently authenticated based on token presence.
|
|
889
|
+
*
|
|
890
|
+
* @returns `true` if an access token is stored, `false` if not,
|
|
891
|
+
* or `null` if token management is unavailable (cookie mode or no TokenManager)
|
|
892
|
+
*/
|
|
789
893
|
isAuthenticated() {
|
|
790
894
|
if (!this.tokenManager || this.simpleConfig?.authMode === 'cookie') {
|
|
791
895
|
return null;
|
|
@@ -795,36 +899,65 @@ class AuthenticationService {
|
|
|
795
899
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
796
900
|
// Delegated sub-services (Promise-based, auto-sync with block API)
|
|
797
901
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
902
|
+
/** Core auth operations (signIn, signUp, signOut, password reset, magic links, invitations). Promise-based. */
|
|
798
903
|
get auth() { return this.ensureConfigured().auth; }
|
|
904
|
+
/** User CRUD, listing, search, and profile management */
|
|
799
905
|
get users() { return this.ensureConfigured().users; }
|
|
906
|
+
/** Role listing and assignment */
|
|
800
907
|
get roles() { return this.ensureConfigured().roles; }
|
|
908
|
+
/** Permission management */
|
|
801
909
|
get permissions() { return this.ensureConfigured().permissions; }
|
|
910
|
+
/** API key creation and management */
|
|
802
911
|
get apiKeys() { return this.ensureConfigured().apiKeys; }
|
|
912
|
+
/** Multi-factor authentication setup and verification */
|
|
803
913
|
get mfa() { return this.ensureConfigured().mfa; }
|
|
914
|
+
/** OAuth provider management (Facebook, Google, tenant login) */
|
|
804
915
|
get oauth() { return this.ensureConfigured().oauth; }
|
|
916
|
+
/** User avatar upload and management */
|
|
805
917
|
get avatars() { return this.ensureConfigured().avatars; }
|
|
918
|
+
/** Tenant CRUD and configuration */
|
|
806
919
|
get tenants() { return this.ensureConfigured().tenants; }
|
|
920
|
+
/** Application registration and management */
|
|
807
921
|
get apps() { return this.ensureConfigured().apps; }
|
|
922
|
+
/** Block configuration management */
|
|
808
923
|
get blocks() { return this.ensureConfigured().blocks; }
|
|
924
|
+
/** Service endpoint management */
|
|
809
925
|
get services() { return this.ensureConfigured().services; }
|
|
926
|
+
/** Subscription model/plan definitions */
|
|
810
927
|
get subscriptionModels() { return this.ensureConfigured().subscriptionModels; }
|
|
928
|
+
/** User-level subscription management */
|
|
811
929
|
get userSubscriptions() { return this.ensureConfigured().userSubscriptions; }
|
|
930
|
+
/** Company-level subscription management */
|
|
812
931
|
get companySubscriptions() { return this.ensureConfigured().companySubscriptions; }
|
|
932
|
+
/** Country listing (read-only reference data) */
|
|
813
933
|
get countries() { return this.ensureConfigured().countries; }
|
|
934
|
+
/** State/province listing (read-only reference data) */
|
|
814
935
|
get states() { return this.ensureConfigured().states; }
|
|
936
|
+
/** County listing (read-only reference data) */
|
|
815
937
|
get counties() { return this.ensureConfigured().counties; }
|
|
938
|
+
/** City listing (read-only reference data) */
|
|
816
939
|
get cities() { return this.ensureConfigured().cities; }
|
|
940
|
+
/** Currency listing (read-only reference data) */
|
|
817
941
|
get currencies() { return this.ensureConfigured().currencies; }
|
|
942
|
+
/** Guest/anonymous user management */
|
|
818
943
|
get guests() { return this.ensureConfigured().guests; }
|
|
944
|
+
/** Magic link token management */
|
|
819
945
|
get magicLinks() { return this.ensureConfigured().magicLinks; }
|
|
946
|
+
/** Refresh token listing and revocation */
|
|
820
947
|
get refreshTokens() { return this.ensureConfigured().refreshTokens; }
|
|
948
|
+
/** User device registration and management */
|
|
821
949
|
get userDevices() { return this.ensureConfigured().userDevices; }
|
|
950
|
+
/** Tenant-user association management */
|
|
822
951
|
get tenantUsers() { return this.ensureConfigured().tenantUsers; }
|
|
952
|
+
/** Email template management (Mandrill/SendGrid) */
|
|
823
953
|
get mailTemplates() { return this.ensureConfigured().mailTemplates; }
|
|
954
|
+
/** JSON Web Key Set management */
|
|
824
955
|
get jwks() { return this.ensureConfigured().jwks; }
|
|
956
|
+
/** Admin RSA key management */
|
|
825
957
|
get adminRsaKeys() { return this.ensureConfigured().adminRsaKeys; }
|
|
958
|
+
/** OpenID Connect configuration */
|
|
826
959
|
get oidc() { return this.ensureConfigured().oidc; }
|
|
827
|
-
/**
|
|
960
|
+
/** Direct access to the underlying AuthenticationBlock instance */
|
|
828
961
|
get authenticationBlock() { return this.ensureConfigured(); }
|
|
829
962
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AuthenticationService, deps: [{ token: AUTHENTICATION_TRANSPORT, optional: true }, { token: TRANSPORT, optional: true }, { token: AUTHENTICATION_CONFIG }, { token: TOKEN_MANAGER, optional: true }, { token: SIMPLE_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
830
963
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AuthenticationService, providedIn: 'root' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"23blocks-angular.mjs","sources":["../../src/lib/tokens.ts","../../src/lib/simple-providers.ts","../../src/lib/providers.ts","../../src/lib/authentication/authentication.service.ts","../../src/lib/search/search.service.ts","../../src/lib/products/products.service.ts","../../src/lib/crm/crm.service.ts","../../src/lib/content/content.service.ts","../../src/lib/geolocation/geolocation.service.ts","../../src/lib/conversations/conversations.service.ts","../../src/lib/files/files.service.ts","../../src/lib/forms/forms.service.ts","../../src/lib/assets/assets.service.ts","../../src/lib/campaigns/campaigns.service.ts","../../src/lib/company/company.service.ts","../../src/lib/rewards/rewards.service.ts","../../src/lib/sales/sales.service.ts","../../src/lib/wallet/wallet.service.ts","../../src/lib/jarvis/jarvis.service.ts","../../src/lib/onboarding/onboarding.service.ts","../../src/lib/university/university.service.ts","../../src/lib/index.ts","../../src/23blocks-angular.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport type { AuthenticationBlockConfig } from '@23blocks/block-authentication';\nimport type { SearchBlockConfig } from '@23blocks/block-search';\nimport type { GeolocationBlockConfig } from '@23blocks/block-geolocation';\nimport type { ContentBlockConfig } from '@23blocks/block-content';\nimport type { CrmBlockConfig } from '@23blocks/block-crm';\nimport type { ProductsBlockConfig } from '@23blocks/block-products';\nimport type { ConversationsBlockConfig } from '@23blocks/block-conversations';\nimport type { FilesBlockConfig } from '@23blocks/block-files';\nimport type { AssetsBlockConfig } from '@23blocks/block-assets';\nimport type { FormsBlockConfig } from '@23blocks/block-forms';\nimport type { SalesBlockConfig } from '@23blocks/block-sales';\nimport type { CampaignsBlockConfig } from '@23blocks/block-campaigns';\nimport type { CompanyBlockConfig } from '@23blocks/block-company';\nimport type { RewardsBlockConfig } from '@23blocks/block-rewards';\nimport type { JarvisBlockConfig } from '@23blocks/block-jarvis';\nimport type { OnboardingBlockConfig } from '@23blocks/block-onboarding';\nimport type { UniversityBlockConfig } from '@23blocks/block-university';\nimport type { WalletBlockConfig } from '@23blocks/block-wallet';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Transport Tokens (per-service)\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * @deprecated Use per-service transport tokens (AUTHENTICATION_TRANSPORT, etc.)\n * Shared transport token - only for backward compatibility with advanced API\n */\nexport const TRANSPORT = new InjectionToken<Transport>('23blocks.transport');\n\n/** Transport for Authentication service */\nexport const AUTHENTICATION_TRANSPORT = new InjectionToken<Transport | null>('23blocks.authentication.transport');\n\n/** Transport for Search service */\nexport const SEARCH_TRANSPORT = new InjectionToken<Transport | null>('23blocks.search.transport');\n\n/** Transport for Products service */\nexport const PRODUCTS_TRANSPORT = new InjectionToken<Transport | null>('23blocks.products.transport');\n\n/** Transport for CRM service */\nexport const CRM_TRANSPORT = new InjectionToken<Transport | null>('23blocks.crm.transport');\n\n/** Transport for Content service */\nexport const CONTENT_TRANSPORT = new InjectionToken<Transport | null>('23blocks.content.transport');\n\n/** Transport for Geolocation service */\nexport const GEOLOCATION_TRANSPORT = new InjectionToken<Transport | null>('23blocks.geolocation.transport');\n\n/** Transport for Conversations service */\nexport const CONVERSATIONS_TRANSPORT = new InjectionToken<Transport | null>('23blocks.conversations.transport');\n\n/** Transport for Files service */\nexport const FILES_TRANSPORT = new InjectionToken<Transport | null>('23blocks.files.transport');\n\n/** Transport for Forms service */\nexport const FORMS_TRANSPORT = new InjectionToken<Transport | null>('23blocks.forms.transport');\n\n/** Transport for Assets service */\nexport const ASSETS_TRANSPORT = new InjectionToken<Transport | null>('23blocks.assets.transport');\n\n/** Transport for Campaigns service */\nexport const CAMPAIGNS_TRANSPORT = new InjectionToken<Transport | null>('23blocks.campaigns.transport');\n\n/** Transport for Company service */\nexport const COMPANY_TRANSPORT = new InjectionToken<Transport | null>('23blocks.company.transport');\n\n/** Transport for Rewards service */\nexport const REWARDS_TRANSPORT = new InjectionToken<Transport | null>('23blocks.rewards.transport');\n\n/** Transport for Sales service */\nexport const SALES_TRANSPORT = new InjectionToken<Transport | null>('23blocks.sales.transport');\n\n/** Transport for Wallet service */\nexport const WALLET_TRANSPORT = new InjectionToken<Transport | null>('23blocks.wallet.transport');\n\n/** Transport for Jarvis service */\nexport const JARVIS_TRANSPORT = new InjectionToken<Transport | null>('23blocks.jarvis.transport');\n\n/** Transport for Onboarding service */\nexport const ONBOARDING_TRANSPORT = new InjectionToken<Transport | null>('23blocks.onboarding.transport');\n\n/** Transport for University service */\nexport const UNIVERSITY_TRANSPORT = new InjectionToken<Transport | null>('23blocks.university.transport');\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Config Tokens (per-service)\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Injection token for Authentication block configuration\n */\nexport const AUTHENTICATION_CONFIG = new InjectionToken<AuthenticationBlockConfig>(\n '23blocks.authentication.config'\n);\n\n/**\n * Injection token for Search block configuration\n */\nexport const SEARCH_CONFIG = new InjectionToken<SearchBlockConfig>(\n '23blocks.search.config'\n);\n\n/**\n * Injection token for Geolocation block configuration\n */\nexport const GEOLOCATION_CONFIG = new InjectionToken<GeolocationBlockConfig>(\n '23blocks.geolocation.config'\n);\n\n/**\n * Injection token for Content block configuration\n */\nexport const CONTENT_CONFIG = new InjectionToken<ContentBlockConfig>(\n '23blocks.content.config'\n);\n\n/**\n * Injection token for CRM block configuration\n */\nexport const CRM_CONFIG = new InjectionToken<CrmBlockConfig>(\n '23blocks.crm.config'\n);\n\n/**\n * Injection token for Products block configuration\n */\nexport const PRODUCTS_CONFIG = new InjectionToken<ProductsBlockConfig>(\n '23blocks.products.config'\n);\n\n/**\n * Injection token for Conversations block configuration\n */\nexport const CONVERSATIONS_CONFIG = new InjectionToken<ConversationsBlockConfig>(\n '23blocks.conversations.config'\n);\n\n/**\n * Injection token for Files block configuration\n */\nexport const FILES_CONFIG = new InjectionToken<FilesBlockConfig>(\n '23blocks.files.config'\n);\n\n/**\n * Injection token for Assets block configuration\n */\nexport const ASSETS_CONFIG = new InjectionToken<AssetsBlockConfig>(\n '23blocks.assets.config'\n);\n\n/**\n * Injection token for Forms block configuration\n */\nexport const FORMS_CONFIG = new InjectionToken<FormsBlockConfig>(\n '23blocks.forms.config'\n);\n\n/**\n * Injection token for Sales block configuration\n */\nexport const SALES_CONFIG = new InjectionToken<SalesBlockConfig>(\n '23blocks.sales.config'\n);\n\n/**\n * Injection token for Campaigns block configuration\n */\nexport const CAMPAIGNS_CONFIG = new InjectionToken<CampaignsBlockConfig>(\n '23blocks.campaigns.config'\n);\n\n/**\n * Injection token for Company block configuration\n */\nexport const COMPANY_CONFIG = new InjectionToken<CompanyBlockConfig>(\n '23blocks.company.config'\n);\n\n/**\n * Injection token for Rewards block configuration\n */\nexport const REWARDS_CONFIG = new InjectionToken<RewardsBlockConfig>(\n '23blocks.rewards.config'\n);\n\n/**\n * Injection token for Jarvis block configuration\n */\nexport const JARVIS_CONFIG = new InjectionToken<JarvisBlockConfig>(\n '23blocks.jarvis.config'\n);\n\n/**\n * Injection token for Onboarding block configuration\n */\nexport const ONBOARDING_CONFIG = new InjectionToken<OnboardingBlockConfig>(\n '23blocks.onboarding.config'\n);\n\n/**\n * Injection token for University block configuration\n */\nexport const UNIVERSITY_CONFIG = new InjectionToken<UniversityBlockConfig>(\n '23blocks.university.config'\n);\n\n/**\n * Injection token for Wallet block configuration\n */\nexport const WALLET_CONFIG = new InjectionToken<WalletBlockConfig>(\n '23blocks.wallet.config'\n);\n","import type { Provider, EnvironmentProviders } from '@angular/core';\nimport { InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { createHttpTransport } from '@23blocks/transport-http';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n TRANSPORT,\n // Per-service transport tokens\n AUTHENTICATION_TRANSPORT,\n SEARCH_TRANSPORT,\n PRODUCTS_TRANSPORT,\n CRM_TRANSPORT,\n CONTENT_TRANSPORT,\n GEOLOCATION_TRANSPORT,\n CONVERSATIONS_TRANSPORT,\n FILES_TRANSPORT,\n FORMS_TRANSPORT,\n ASSETS_TRANSPORT,\n CAMPAIGNS_TRANSPORT,\n COMPANY_TRANSPORT,\n REWARDS_TRANSPORT,\n SALES_TRANSPORT,\n WALLET_TRANSPORT,\n JARVIS_TRANSPORT,\n ONBOARDING_TRANSPORT,\n UNIVERSITY_TRANSPORT,\n // Config tokens\n AUTHENTICATION_CONFIG,\n SEARCH_CONFIG,\n PRODUCTS_CONFIG,\n CRM_CONFIG,\n CONTENT_CONFIG,\n GEOLOCATION_CONFIG,\n CONVERSATIONS_CONFIG,\n FILES_CONFIG,\n FORMS_CONFIG,\n ASSETS_CONFIG,\n CAMPAIGNS_CONFIG,\n COMPANY_CONFIG,\n REWARDS_CONFIG,\n SALES_CONFIG,\n WALLET_CONFIG,\n JARVIS_CONFIG,\n ONBOARDING_CONFIG,\n UNIVERSITY_CONFIG,\n} from './tokens';\n\n/**\n * Authentication mode\n */\nexport type AuthMode = 'token' | 'cookie';\n\n/**\n * Storage type for token mode\n */\nexport type StorageType = 'localStorage' | 'sessionStorage' | 'memory';\n\n/**\n * Service URL configuration - each microservice has its own URL.\n * All URLs are optional - only configure the services you need.\n */\nexport interface ServiceUrls {\n /** Authentication service URL */\n authentication?: string;\n /** Search service URL */\n search?: string;\n /** Products service URL */\n products?: string;\n /** CRM service URL */\n crm?: string;\n /** Content service URL */\n content?: string;\n /** Geolocation service URL */\n geolocation?: string;\n /** Conversations service URL */\n conversations?: string;\n /** Files service URL */\n files?: string;\n /** Forms service URL */\n forms?: string;\n /** Assets service URL */\n assets?: string;\n /** Campaigns service URL */\n campaigns?: string;\n /** Company service URL */\n company?: string;\n /** Rewards service URL */\n rewards?: string;\n /** Sales service URL */\n sales?: string;\n /** Wallet service URL */\n wallet?: string;\n /** Jarvis (AI) service URL */\n jarvis?: string;\n /** Onboarding service URL */\n onboarding?: string;\n /** University (LMS) service URL */\n university?: string;\n}\n\n/**\n * Configuration for providing 23blocks services\n */\nexport interface ProviderConfig {\n /**\n * Service URLs for each microservice.\n * Only configure the services you need - accessing a service without\n * a configured URL will throw an error.\n *\n * @example\n * ```typescript\n * provideBlocks23({\n * apiKey: 'your-api-key',\n * urls: {\n * authentication: 'https://gateway.23blocks.com',\n * crm: 'https://crm.23blocks.com',\n * products: 'https://products.23blocks.com',\n * },\n * })\n * ```\n */\n urls: ServiceUrls;\n\n /**\n * API Key for authenticating with 23blocks services\n */\n apiKey: string;\n\n /**\n * Tenant ID (optional, for multi-tenant setups)\n */\n tenantId?: string;\n\n /**\n * Authentication mode\n * - 'token' (default): SDK stores tokens in localStorage/sessionStorage/memory\n * - 'cookie': Backend manages auth via httpOnly cookies\n */\n authMode?: AuthMode;\n\n /**\n * Storage type for token mode\n * @default 'localStorage'\n */\n storage?: StorageType;\n\n /**\n * Additional headers to include with every request\n */\n headers?: Record<string, string>;\n\n /**\n * Request timeout in milliseconds\n * @default 30000\n */\n timeout?: number;\n}\n\n/**\n * Injection token for the token manager (internal use)\n */\nexport const TOKEN_MANAGER = new InjectionToken<TokenManagerService>('23blocks.token-manager');\n\n/**\n * Injection token for provider config\n */\nexport const PROVIDER_CONFIG = new InjectionToken<ProviderConfig>('23blocks.provider-config');\n\n/** @deprecated Use PROVIDER_CONFIG instead */\nexport const SIMPLE_CONFIG = PROVIDER_CONFIG;\n\n/**\n * Token manager interface\n */\nexport interface TokenManagerService {\n getAccessToken(): string | null;\n getRefreshToken(): string | null;\n setTokens(accessToken: string, refreshToken?: string): void;\n clearTokens(): void;\n /**\n * Subscribe to storage changes from other tabs/windows.\n * Returns an unsubscribe function.\n */\n onStorageChange(callback: () => void): () => void;\n}\n\n/**\n * Generate storage key scoped to API key and tenant\n */\nfunction getStorageKey(type: 'access' | 'refresh', apiKey: string, tenantId?: string): string {\n const scope = tenantId ? `${apiKey}_${tenantId}` : apiKey;\n return `23blocks_${scope}_${type}_token`;\n}\n\n/**\n * In-memory storage for SSR\n */\nclass MemoryStorage {\n private data = new Map<string, string>();\n getItem(key: string): string | null {\n return this.data.get(key) ?? null;\n }\n setItem(key: string, value: string): void {\n this.data.set(key, value);\n }\n removeItem(key: string): void {\n this.data.delete(key);\n }\n}\n\n/**\n * Create a token manager with scoped storage keys and cross-tab sync\n */\nfunction createTokenManager(\n apiKey: string,\n storageType: StorageType,\n tenantId?: string\n): TokenManagerService {\n const isBrowser = typeof window !== 'undefined' && typeof window.localStorage !== 'undefined';\n\n const accessTokenKey = getStorageKey('access', apiKey, tenantId);\n const refreshTokenKey = getStorageKey('refresh', apiKey, tenantId);\n\n let storage: Storage | MemoryStorage;\n if (!isBrowser) {\n storage = new MemoryStorage();\n } else {\n switch (storageType) {\n case 'sessionStorage':\n storage = window.sessionStorage;\n break;\n case 'memory':\n storage = new MemoryStorage();\n break;\n default:\n storage = window.localStorage;\n }\n }\n\n return {\n getAccessToken(): string | null {\n try {\n return storage.getItem(accessTokenKey);\n } catch {\n return null;\n }\n },\n getRefreshToken(): string | null {\n try {\n return storage.getItem(refreshTokenKey);\n } catch {\n return null;\n }\n },\n setTokens(accessToken: string, refreshToken?: string): void {\n try {\n storage.setItem(accessTokenKey, accessToken);\n if (refreshToken) {\n storage.setItem(refreshTokenKey, refreshToken);\n }\n } catch {\n console.warn('[23blocks] Unable to store tokens');\n }\n },\n clearTokens(): void {\n try {\n storage.removeItem(accessTokenKey);\n storage.removeItem(refreshTokenKey);\n } catch {\n // Silently fail\n }\n },\n onStorageChange(callback: () => void): () => void {\n // Only works in browser with localStorage/sessionStorage\n if (!isBrowser || storageType === 'memory') {\n // Return no-op unsubscribe for SSR/memory storage\n return () => {};\n }\n\n const handler = (event: StorageEvent) => {\n // Only trigger if our keys changed\n if (event.key === accessTokenKey || event.key === refreshTokenKey) {\n callback();\n }\n };\n\n window.addEventListener('storage', handler);\n\n // Return unsubscribe function\n return () => {\n window.removeEventListener('storage', handler);\n };\n },\n };\n}\n\n/**\n * Create transport with automatic token handling for a specific URL\n */\nfunction createTransportWithAuth(\n baseUrl: string,\n config: ProviderConfig,\n tokenManager: TokenManagerService\n): Transport {\n return createHttpTransport({\n baseUrl,\n timeout: config.timeout,\n credentials: config.authMode === 'cookie' ? 'include' : undefined,\n headers: () => {\n const headers: Record<string, string> = {\n ...config.headers,\n 'x-api-key': config.apiKey,\n };\n\n if (config.tenantId) {\n headers['tenant-id'] = config.tenantId;\n }\n\n // In token mode, add Authorization header if we have a token\n if (config.authMode !== 'cookie') {\n const token = tokenManager.getAccessToken();\n if (token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n }\n\n return headers;\n },\n });\n}\n\n/**\n * Provide 23blocks services with simplified configuration.\n *\n * This is the recommended way to set up 23blocks in new Angular applications.\n * It automatically handles token storage and authentication headers.\n *\n * Services are only available if their URL is configured. Accessing a service\n * without a configured URL will throw an error.\n *\n * @example Basic usage with multiple services\n * ```typescript\n * // app.config.ts\n * import { ApplicationConfig } from '@angular/core';\n * import { provideBlocks23 } from '@23blocks/angular';\n *\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideBlocks23({\n * apiKey: 'your-api-key',\n * urls: {\n * authentication: 'https://gateway.23blocks.com',\n * crm: 'https://crm.23blocks.com',\n * products: 'https://products.23blocks.com',\n * },\n * }),\n * ],\n * };\n * ```\n *\n * @example Cookie mode (recommended for security)\n * ```typescript\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideBlocks23({\n * apiKey: 'your-api-key',\n * authMode: 'cookie',\n * urls: {\n * authentication: 'https://gateway.23blocks.com',\n * crm: 'https://crm.23blocks.com',\n * },\n * }),\n * ],\n * };\n * ```\n */\nexport function provideBlocks23(config: ProviderConfig): EnvironmentProviders {\n // Block config for all services\n const blockConfig = { apiKey: config.apiKey, tenantId: config.tenantId };\n\n // Helper to create transport provider for a service URL\n const createTransportProvider = (\n token: InjectionToken<Transport | null>,\n url: string | undefined\n ): Provider => ({\n provide: token,\n useFactory: (tokenManager: TokenManagerService) => {\n if (!url) return null;\n return createTransportWithAuth(url, config, tokenManager);\n },\n deps: [TOKEN_MANAGER],\n });\n\n const providers: Provider[] = [\n // Store config for injection\n { provide: PROVIDER_CONFIG, useValue: config },\n\n // Token manager factory - creates singleton within the injector\n {\n provide: TOKEN_MANAGER,\n useFactory: () => {\n const storage = config.storage ?? 'localStorage';\n return createTokenManager(config.apiKey, storage, config.tenantId);\n },\n },\n\n // Per-service transport factories (null if URL not configured)\n createTransportProvider(AUTHENTICATION_TRANSPORT, config.urls.authentication),\n createTransportProvider(SEARCH_TRANSPORT, config.urls.search),\n createTransportProvider(PRODUCTS_TRANSPORT, config.urls.products),\n createTransportProvider(CRM_TRANSPORT, config.urls.crm),\n createTransportProvider(CONTENT_TRANSPORT, config.urls.content),\n createTransportProvider(GEOLOCATION_TRANSPORT, config.urls.geolocation),\n createTransportProvider(CONVERSATIONS_TRANSPORT, config.urls.conversations),\n createTransportProvider(FILES_TRANSPORT, config.urls.files),\n createTransportProvider(FORMS_TRANSPORT, config.urls.forms),\n createTransportProvider(ASSETS_TRANSPORT, config.urls.assets),\n createTransportProvider(CAMPAIGNS_TRANSPORT, config.urls.campaigns),\n createTransportProvider(COMPANY_TRANSPORT, config.urls.company),\n createTransportProvider(REWARDS_TRANSPORT, config.urls.rewards),\n createTransportProvider(SALES_TRANSPORT, config.urls.sales),\n createTransportProvider(WALLET_TRANSPORT, config.urls.wallet),\n createTransportProvider(JARVIS_TRANSPORT, config.urls.jarvis),\n createTransportProvider(ONBOARDING_TRANSPORT, config.urls.onboarding),\n createTransportProvider(UNIVERSITY_TRANSPORT, config.urls.university),\n\n // Backward compatibility: provide TRANSPORT token using auth URL if available\n // (for advanced API users who still inject TRANSPORT directly)\n {\n provide: TRANSPORT,\n useFactory: (tokenManager: TokenManagerService) => {\n // Use auth URL if available, otherwise create a dummy transport that throws\n const url = config.urls.authentication;\n if (url) {\n return createTransportWithAuth(url, config, tokenManager);\n }\n // Return a transport that throws helpful errors\n return {\n request: () => {\n throw new Error(\n '[23blocks] TRANSPORT is not configured. ' +\n 'Use per-service transport tokens or configure urls.authentication.'\n );\n },\n };\n },\n deps: [TOKEN_MANAGER],\n },\n\n // Block configs\n { provide: AUTHENTICATION_CONFIG, useValue: blockConfig },\n { provide: SEARCH_CONFIG, useValue: blockConfig },\n { provide: PRODUCTS_CONFIG, useValue: blockConfig },\n { provide: CRM_CONFIG, useValue: blockConfig },\n { provide: CONTENT_CONFIG, useValue: blockConfig },\n { provide: GEOLOCATION_CONFIG, useValue: blockConfig },\n { provide: CONVERSATIONS_CONFIG, useValue: blockConfig },\n { provide: FILES_CONFIG, useValue: blockConfig },\n { provide: FORMS_CONFIG, useValue: blockConfig },\n { provide: ASSETS_CONFIG, useValue: blockConfig },\n { provide: CAMPAIGNS_CONFIG, useValue: blockConfig },\n { provide: COMPANY_CONFIG, useValue: blockConfig },\n { provide: REWARDS_CONFIG, useValue: blockConfig },\n { provide: SALES_CONFIG, useValue: blockConfig },\n { provide: WALLET_CONFIG, useValue: blockConfig },\n { provide: JARVIS_CONFIG, useValue: blockConfig },\n { provide: ONBOARDING_CONFIG, useValue: blockConfig },\n { provide: UNIVERSITY_CONFIG, useValue: blockConfig },\n ];\n\n return makeEnvironmentProviders(providers);\n}\n\n/**\n * Get providers array for NgModule-based applications with simplified config.\n *\n * Services are only available if their URL is configured. Accessing a service\n * without a configured URL will throw an error.\n *\n * @example\n * ```typescript\n * // app.module.ts\n * import { NgModule } from '@angular/core';\n * import { getBlocks23Providers } from '@23blocks/angular';\n *\n * @NgModule({\n * providers: [\n * ...getBlocks23Providers({\n * apiKey: 'your-api-key',\n * urls: {\n * authentication: 'https://gateway.23blocks.com',\n * crm: 'https://crm.23blocks.com',\n * },\n * }),\n * ],\n * })\n * export class AppModule {}\n * ```\n */\nexport function getBlocks23Providers(config: ProviderConfig): Provider[] {\n // Block config for all services\n const blockConfig = { apiKey: config.apiKey, tenantId: config.tenantId };\n\n // Helper to create transport provider for a service URL\n const createTransportProvider = (\n token: InjectionToken<Transport | null>,\n url: string | undefined\n ): Provider => ({\n provide: token,\n useFactory: (tokenManager: TokenManagerService) => {\n if (!url) return null;\n return createTransportWithAuth(url, config, tokenManager);\n },\n deps: [TOKEN_MANAGER],\n });\n\n return [\n // Store config for injection\n { provide: PROVIDER_CONFIG, useValue: config },\n\n // Token manager factory - creates singleton within the injector\n {\n provide: TOKEN_MANAGER,\n useFactory: () => {\n const storage = config.storage ?? 'localStorage';\n return createTokenManager(config.apiKey, storage, config.tenantId);\n },\n },\n\n // Per-service transport factories (null if URL not configured)\n createTransportProvider(AUTHENTICATION_TRANSPORT, config.urls.authentication),\n createTransportProvider(SEARCH_TRANSPORT, config.urls.search),\n createTransportProvider(PRODUCTS_TRANSPORT, config.urls.products),\n createTransportProvider(CRM_TRANSPORT, config.urls.crm),\n createTransportProvider(CONTENT_TRANSPORT, config.urls.content),\n createTransportProvider(GEOLOCATION_TRANSPORT, config.urls.geolocation),\n createTransportProvider(CONVERSATIONS_TRANSPORT, config.urls.conversations),\n createTransportProvider(FILES_TRANSPORT, config.urls.files),\n createTransportProvider(FORMS_TRANSPORT, config.urls.forms),\n createTransportProvider(ASSETS_TRANSPORT, config.urls.assets),\n createTransportProvider(CAMPAIGNS_TRANSPORT, config.urls.campaigns),\n createTransportProvider(COMPANY_TRANSPORT, config.urls.company),\n createTransportProvider(REWARDS_TRANSPORT, config.urls.rewards),\n createTransportProvider(SALES_TRANSPORT, config.urls.sales),\n createTransportProvider(WALLET_TRANSPORT, config.urls.wallet),\n createTransportProvider(JARVIS_TRANSPORT, config.urls.jarvis),\n createTransportProvider(ONBOARDING_TRANSPORT, config.urls.onboarding),\n createTransportProvider(UNIVERSITY_TRANSPORT, config.urls.university),\n\n // Backward compatibility: provide TRANSPORT token using auth URL if available\n {\n provide: TRANSPORT,\n useFactory: (tokenManager: TokenManagerService) => {\n const url = config.urls.authentication;\n if (url) {\n return createTransportWithAuth(url, config, tokenManager);\n }\n return {\n request: () => {\n throw new Error(\n '[23blocks] TRANSPORT is not configured. ' +\n 'Use per-service transport tokens or configure urls.authentication.'\n );\n },\n };\n },\n deps: [TOKEN_MANAGER],\n },\n\n // Block configs\n { provide: AUTHENTICATION_CONFIG, useValue: blockConfig },\n { provide: SEARCH_CONFIG, useValue: blockConfig },\n { provide: PRODUCTS_CONFIG, useValue: blockConfig },\n { provide: CRM_CONFIG, useValue: blockConfig },\n { provide: CONTENT_CONFIG, useValue: blockConfig },\n { provide: GEOLOCATION_CONFIG, useValue: blockConfig },\n { provide: CONVERSATIONS_CONFIG, useValue: blockConfig },\n { provide: FILES_CONFIG, useValue: blockConfig },\n { provide: FORMS_CONFIG, useValue: blockConfig },\n { provide: ASSETS_CONFIG, useValue: blockConfig },\n { provide: CAMPAIGNS_CONFIG, useValue: blockConfig },\n { provide: COMPANY_CONFIG, useValue: blockConfig },\n { provide: REWARDS_CONFIG, useValue: blockConfig },\n { provide: SALES_CONFIG, useValue: blockConfig },\n { provide: WALLET_CONFIG, useValue: blockConfig },\n { provide: JARVIS_CONFIG, useValue: blockConfig },\n { provide: ONBOARDING_CONFIG, useValue: blockConfig },\n { provide: UNIVERSITY_CONFIG, useValue: blockConfig },\n ];\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Backward Compatibility Aliases (deprecated)\n// ─────────────────────────────────────────────────────────────────────────────\n\n/** @deprecated Use `ProviderConfig` instead */\nexport type Simple23BlocksConfig = ProviderConfig;\n","import type { Provider, EnvironmentProviders } from '@angular/core';\nimport { makeEnvironmentProviders } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport type { AuthenticationBlockConfig } from '@23blocks/block-authentication';\nimport type { SearchBlockConfig } from '@23blocks/block-search';\nimport type { ProductsBlockConfig } from '@23blocks/block-products';\nimport type { CrmBlockConfig } from '@23blocks/block-crm';\nimport type { ContentBlockConfig } from '@23blocks/block-content';\nimport type { GeolocationBlockConfig } from '@23blocks/block-geolocation';\nimport type { ConversationsBlockConfig } from '@23blocks/block-conversations';\nimport type { FilesBlockConfig } from '@23blocks/block-files';\nimport type { FormsBlockConfig } from '@23blocks/block-forms';\nimport type { AssetsBlockConfig } from '@23blocks/block-assets';\nimport type { CampaignsBlockConfig } from '@23blocks/block-campaigns';\nimport type { CompanyBlockConfig } from '@23blocks/block-company';\nimport type { RewardsBlockConfig } from '@23blocks/block-rewards';\nimport type { SalesBlockConfig } from '@23blocks/block-sales';\nimport type { WalletBlockConfig } from '@23blocks/block-wallet';\nimport type { JarvisBlockConfig } from '@23blocks/block-jarvis';\nimport type { OnboardingBlockConfig } from '@23blocks/block-onboarding';\nimport type { UniversityBlockConfig } from '@23blocks/block-university';\nimport {\n TRANSPORT,\n AUTHENTICATION_CONFIG,\n SEARCH_CONFIG,\n PRODUCTS_CONFIG,\n CRM_CONFIG,\n CONTENT_CONFIG,\n GEOLOCATION_CONFIG,\n CONVERSATIONS_CONFIG,\n FILES_CONFIG,\n FORMS_CONFIG,\n ASSETS_CONFIG,\n CAMPAIGNS_CONFIG,\n COMPANY_CONFIG,\n REWARDS_CONFIG,\n SALES_CONFIG,\n WALLET_CONFIG,\n JARVIS_CONFIG,\n ONBOARDING_CONFIG,\n UNIVERSITY_CONFIG,\n} from './tokens';\n\n/**\n * Configuration for providing 23blocks services\n */\nexport interface Provide23BlocksConfig {\n transport: Transport;\n authentication?: AuthenticationBlockConfig;\n search?: SearchBlockConfig;\n products?: ProductsBlockConfig;\n crm?: CrmBlockConfig;\n content?: ContentBlockConfig;\n geolocation?: GeolocationBlockConfig;\n conversations?: ConversationsBlockConfig;\n files?: FilesBlockConfig;\n forms?: FormsBlockConfig;\n assets?: AssetsBlockConfig;\n campaigns?: CampaignsBlockConfig;\n company?: CompanyBlockConfig;\n rewards?: RewardsBlockConfig;\n sales?: SalesBlockConfig;\n wallet?: WalletBlockConfig;\n jarvis?: JarvisBlockConfig;\n onboarding?: OnboardingBlockConfig;\n university?: UniversityBlockConfig;\n}\n\n/**\n * Provide 23blocks services for standalone Angular applications.\n *\n * @example\n * ```typescript\n * // app.config.ts\n * import { ApplicationConfig } from '@angular/core';\n * import { provide23Blocks } from '@23blocks/angular';\n * import { createHttpTransport } from '@23blocks/transport-http';\n *\n * const transport = createHttpTransport({\n * baseUrl: 'https://api.example.com',\n * headers: () => ({\n * 'Authorization': `Bearer ${localStorage.getItem('token')}`,\n * }),\n * });\n *\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provide23Blocks({\n * transport,\n * authentication: { apiKey: 'my-api-key' },\n * search: { apiKey: 'my-api-key' },\n * products: { apiKey: 'my-api-key' },\n * crm: { apiKey: 'my-api-key' },\n * }),\n * ],\n * };\n * ```\n */\nexport function provide23Blocks(config: Provide23BlocksConfig): EnvironmentProviders {\n const providers: Provider[] = [\n { provide: TRANSPORT, useValue: config.transport },\n ];\n\n if (config.authentication) {\n providers.push({ provide: AUTHENTICATION_CONFIG, useValue: config.authentication });\n }\n if (config.search) {\n providers.push({ provide: SEARCH_CONFIG, useValue: config.search });\n }\n if (config.products) {\n providers.push({ provide: PRODUCTS_CONFIG, useValue: config.products });\n }\n if (config.crm) {\n providers.push({ provide: CRM_CONFIG, useValue: config.crm });\n }\n if (config.content) {\n providers.push({ provide: CONTENT_CONFIG, useValue: config.content });\n }\n if (config.geolocation) {\n providers.push({ provide: GEOLOCATION_CONFIG, useValue: config.geolocation });\n }\n if (config.conversations) {\n providers.push({ provide: CONVERSATIONS_CONFIG, useValue: config.conversations });\n }\n if (config.files) {\n providers.push({ provide: FILES_CONFIG, useValue: config.files });\n }\n if (config.forms) {\n providers.push({ provide: FORMS_CONFIG, useValue: config.forms });\n }\n if (config.assets) {\n providers.push({ provide: ASSETS_CONFIG, useValue: config.assets });\n }\n if (config.campaigns) {\n providers.push({ provide: CAMPAIGNS_CONFIG, useValue: config.campaigns });\n }\n if (config.company) {\n providers.push({ provide: COMPANY_CONFIG, useValue: config.company });\n }\n if (config.rewards) {\n providers.push({ provide: REWARDS_CONFIG, useValue: config.rewards });\n }\n if (config.sales) {\n providers.push({ provide: SALES_CONFIG, useValue: config.sales });\n }\n if (config.wallet) {\n providers.push({ provide: WALLET_CONFIG, useValue: config.wallet });\n }\n if (config.jarvis) {\n providers.push({ provide: JARVIS_CONFIG, useValue: config.jarvis });\n }\n if (config.onboarding) {\n providers.push({ provide: ONBOARDING_CONFIG, useValue: config.onboarding });\n }\n if (config.university) {\n providers.push({ provide: UNIVERSITY_CONFIG, useValue: config.university });\n }\n\n return makeEnvironmentProviders(providers);\n}\n\n/**\n * Get providers array for NgModule-based applications.\n *\n * @example\n * ```typescript\n * // app.module.ts\n * import { NgModule } from '@angular/core';\n * import { get23BlocksProviders } from '@23blocks/angular';\n *\n * @NgModule({\n * providers: [\n * ...get23BlocksProviders({\n * transport,\n * authentication: { apiKey: 'my-api-key' },\n * }),\n * ],\n * })\n * export class AppModule {}\n * ```\n */\nexport function get23BlocksProviders(config: Provide23BlocksConfig): Provider[] {\n const providers: Provider[] = [\n { provide: TRANSPORT, useValue: config.transport },\n ];\n\n if (config.authentication) {\n providers.push({ provide: AUTHENTICATION_CONFIG, useValue: config.authentication });\n }\n if (config.search) {\n providers.push({ provide: SEARCH_CONFIG, useValue: config.search });\n }\n if (config.products) {\n providers.push({ provide: PRODUCTS_CONFIG, useValue: config.products });\n }\n if (config.crm) {\n providers.push({ provide: CRM_CONFIG, useValue: config.crm });\n }\n if (config.content) {\n providers.push({ provide: CONTENT_CONFIG, useValue: config.content });\n }\n if (config.geolocation) {\n providers.push({ provide: GEOLOCATION_CONFIG, useValue: config.geolocation });\n }\n if (config.conversations) {\n providers.push({ provide: CONVERSATIONS_CONFIG, useValue: config.conversations });\n }\n if (config.files) {\n providers.push({ provide: FILES_CONFIG, useValue: config.files });\n }\n if (config.forms) {\n providers.push({ provide: FORMS_CONFIG, useValue: config.forms });\n }\n if (config.assets) {\n providers.push({ provide: ASSETS_CONFIG, useValue: config.assets });\n }\n if (config.campaigns) {\n providers.push({ provide: CAMPAIGNS_CONFIG, useValue: config.campaigns });\n }\n if (config.company) {\n providers.push({ provide: COMPANY_CONFIG, useValue: config.company });\n }\n if (config.rewards) {\n providers.push({ provide: REWARDS_CONFIG, useValue: config.rewards });\n }\n if (config.sales) {\n providers.push({ provide: SALES_CONFIG, useValue: config.sales });\n }\n if (config.wallet) {\n providers.push({ provide: WALLET_CONFIG, useValue: config.wallet });\n }\n if (config.jarvis) {\n providers.push({ provide: JARVIS_CONFIG, useValue: config.jarvis });\n }\n if (config.onboarding) {\n providers.push({ provide: ONBOARDING_CONFIG, useValue: config.onboarding });\n }\n if (config.university) {\n providers.push({ provide: UNIVERSITY_CONFIG, useValue: config.university });\n }\n\n return providers;\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from, tap } from 'rxjs';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createAuthenticationBlock,\n type AuthenticationBlock,\n type AuthenticationBlockConfig,\n type SignInRequest,\n type SignInResponse,\n type SignUpRequest,\n type SignUpResponse,\n type RefreshTokenRequest,\n type RefreshTokenResponse,\n type MagicLinkVerifyRequest,\n type AcceptInvitationRequest,\n type OAuthSocialLoginRequest,\n type TenantLoginRequest,\n} from '@23blocks/block-authentication';\nimport { TRANSPORT, AUTHENTICATION_TRANSPORT, AUTHENTICATION_CONFIG } from '../tokens';\nimport { TOKEN_MANAGER, SIMPLE_CONFIG, type TokenManagerService, type Simple23BlocksConfig } from '../simple-providers';\n\n/**\n * Angular service wrapping the Authentication block.\n *\n * Auth-flow methods (signIn, signUp, signOut, OAuth, etc.) return Observables\n * with automatic token management via `tap()`.\n *\n * All other sub-services are exposed as typed getters returning Promise-based APIs.\n * Use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * // Auth flows (Observable with token management):\n * this.auth.signIn({ email, password }).subscribe(...)\n *\n * // Other services (Promise-based, wrap in from() if needed):\n * const user = await this.auth.users.get(userId);\n * from(this.auth.roles.list()).subscribe(...)\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class AuthenticationService {\n private readonly block: AuthenticationBlock | null;\n private readonly tokenManager: TokenManagerService | null;\n private readonly simpleConfig: Simple23BlocksConfig | null;\n\n constructor(\n @Optional() @Inject(AUTHENTICATION_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(AUTHENTICATION_CONFIG) config: AuthenticationBlockConfig,\n @Optional() @Inject(TOKEN_MANAGER) tokenManager: TokenManagerService | null,\n @Optional() @Inject(SIMPLE_CONFIG) simpleConfig: Simple23BlocksConfig | null\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createAuthenticationBlock(transport, config) : null;\n this.tokenManager = tokenManager;\n this.simpleConfig = simpleConfig;\n }\n\n private ensureConfigured(): AuthenticationBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] AuthenticationService is not configured. ' +\n \"Add 'urls.authentication' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n private get isTokenMode(): boolean {\n return this.tokenManager !== null && this.simpleConfig?.authMode !== 'cookie';\n }\n\n private storeTokens(response: SignInResponse | RefreshTokenResponse): void {\n if (this.isTokenMode && this.tokenManager && response.accessToken) {\n this.tokenManager.setTokens(\n response.accessToken,\n 'refreshToken' in response ? response.refreshToken : undefined\n );\n }\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Auth-flow methods (Observable with token management)\n // ─────────────────────────────────────────────────────────────────────────────\n\n signIn(request: SignInRequest): Observable<SignInResponse> {\n return from(this.ensureConfigured().auth.signIn(request)).pipe(\n tap((response) => this.storeTokens(response))\n );\n }\n\n signUp(request: SignUpRequest): Observable<SignUpResponse> {\n return from(this.ensureConfigured().auth.signUp(request)).pipe(\n tap((response) => {\n if (this.isTokenMode && this.tokenManager && response.accessToken) {\n this.tokenManager.setTokens(response.accessToken);\n }\n })\n );\n }\n\n signOut(): Observable<void> {\n return from(this.ensureConfigured().auth.signOut()).pipe(\n tap(() => {\n if (this.isTokenMode && this.tokenManager) {\n this.tokenManager.clearTokens();\n }\n })\n );\n }\n\n refreshToken(request: RefreshTokenRequest): Observable<RefreshTokenResponse> {\n return from(this.ensureConfigured().auth.refreshToken(request)).pipe(\n tap((response) => this.storeTokens(response))\n );\n }\n\n verifyMagicLink(request: MagicLinkVerifyRequest): Observable<SignInResponse> {\n return from(this.ensureConfigured().auth.verifyMagicLink(request)).pipe(\n tap((response) => this.storeTokens(response))\n );\n }\n\n acceptInvitation(request: AcceptInvitationRequest): Observable<SignInResponse> {\n return from(this.ensureConfigured().auth.acceptInvitation(request)).pipe(\n tap((response) => this.storeTokens(response))\n );\n }\n\n facebookLogin(request: OAuthSocialLoginRequest): Observable<SignInResponse> {\n return from(this.ensureConfigured().oauth.facebookLogin(request)).pipe(\n tap((response) => this.storeTokens(response))\n );\n }\n\n googleLogin(request: OAuthSocialLoginRequest): Observable<SignInResponse> {\n return from(this.ensureConfigured().oauth.googleLogin(request)).pipe(\n tap((response) => this.storeTokens(response))\n );\n }\n\n tenantLogin(request: TenantLoginRequest): Observable<SignInResponse> {\n return from(this.ensureConfigured().oauth.tenantLogin(request)).pipe(\n tap((response) => this.storeTokens(response))\n );\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Token Management (only applicable with provideBlocks23)\n // ─────────────────────────────────────────────────────────────────────────────\n\n getAccessToken(): string | null {\n return this.tokenManager?.getAccessToken() ?? null;\n }\n\n getRefreshToken(): string | null {\n return this.tokenManager?.getRefreshToken() ?? null;\n }\n\n setTokens(accessToken: string, refreshToken?: string): void {\n this.tokenManager?.setTokens(accessToken, refreshToken);\n }\n\n clearTokens(): void {\n this.tokenManager?.clearTokens();\n }\n\n isAuthenticated(): boolean | null {\n if (!this.tokenManager || this.simpleConfig?.authMode === 'cookie') {\n return null;\n }\n return !!this.tokenManager.getAccessToken();\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Delegated sub-services (Promise-based, auto-sync with block API)\n // ─────────────────────────────────────────────────────────────────────────────\n\n get auth() { return this.ensureConfigured().auth; }\n get users() { return this.ensureConfigured().users; }\n get roles() { return this.ensureConfigured().roles; }\n get permissions() { return this.ensureConfigured().permissions; }\n get apiKeys() { return this.ensureConfigured().apiKeys; }\n get mfa() { return this.ensureConfigured().mfa; }\n get oauth() { return this.ensureConfigured().oauth; }\n get avatars() { return this.ensureConfigured().avatars; }\n get tenants() { return this.ensureConfigured().tenants; }\n get apps() { return this.ensureConfigured().apps; }\n get blocks() { return this.ensureConfigured().blocks; }\n get services() { return this.ensureConfigured().services; }\n get subscriptionModels() { return this.ensureConfigured().subscriptionModels; }\n get userSubscriptions() { return this.ensureConfigured().userSubscriptions; }\n get companySubscriptions() { return this.ensureConfigured().companySubscriptions; }\n get countries() { return this.ensureConfigured().countries; }\n get states() { return this.ensureConfigured().states; }\n get counties() { return this.ensureConfigured().counties; }\n get cities() { return this.ensureConfigured().cities; }\n get currencies() { return this.ensureConfigured().currencies; }\n get guests() { return this.ensureConfigured().guests; }\n get magicLinks() { return this.ensureConfigured().magicLinks; }\n get refreshTokens() { return this.ensureConfigured().refreshTokens; }\n get userDevices() { return this.ensureConfigured().userDevices; }\n get tenantUsers() { return this.ensureConfigured().tenantUsers; }\n get mailTemplates() { return this.ensureConfigured().mailTemplates; }\n get jwks() { return this.ensureConfigured().jwks; }\n get adminRsaKeys() { return this.ensureConfigured().adminRsaKeys; }\n get oidc() { return this.ensureConfigured().oidc; }\n\n /** Full block access */\n get authenticationBlock(): AuthenticationBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createSearchBlock,\n type SearchBlock,\n type SearchBlockConfig,\n} from '@23blocks/block-search';\nimport { TRANSPORT, SEARCH_TRANSPORT, SEARCH_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Search block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * // Promise-based (recommended for modern Angular):\n * const result = await this.searchService.search.search(request);\n *\n * // Observable-based:\n * from(this.searchService.search.search(request)).subscribe(...)\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class SearchService {\n private readonly block: SearchBlock | null;\n\n constructor(\n @Optional() @Inject(SEARCH_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(SEARCH_CONFIG) config: SearchBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createSearchBlock(transport, config) : null;\n }\n\n private ensureConfigured(): SearchBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] SearchService is not configured. ' +\n \"Add 'urls.search' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get search() { return this.ensureConfigured().search; }\n get history() { return this.ensureConfigured().history; }\n get favorites() { return this.ensureConfigured().favorites; }\n get entities() { return this.ensureConfigured().entities; }\n get identities() { return this.ensureConfigured().identities; }\n get jarvis() { return this.ensureConfigured().jarvis; }\n\n /** Full block access */\n get searchBlock(): SearchBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createProductsBlock,\n type ProductsBlock,\n type ProductsBlockConfig,\n} from '@23blocks/block-products';\nimport { TRANSPORT, PRODUCTS_TRANSPORT, PRODUCTS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Products block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const products = await this.productsService.products.list();\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class ProductsService {\n private readonly block: ProductsBlock | null;\n\n constructor(\n @Optional() @Inject(PRODUCTS_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(PRODUCTS_CONFIG) config: ProductsBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createProductsBlock(transport, config) : null;\n }\n\n private ensureConfigured(): ProductsBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] ProductsService is not configured. ' +\n \"Add 'urls.products' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get products() { return this.ensureConfigured().products; }\n get cart() { return this.ensureConfigured().cart; }\n get cartDetails() { return this.ensureConfigured().cartDetails; }\n get categories() { return this.ensureConfigured().categories; }\n get brands() { return this.ensureConfigured().brands; }\n get vendors() { return this.ensureConfigured().vendors; }\n get warehouses() { return this.ensureConfigured().warehouses; }\n get channels() { return this.ensureConfigured().channels; }\n get collections() { return this.ensureConfigured().collections; }\n get productSets() { return this.ensureConfigured().productSets; }\n get shoppingLists() { return this.ensureConfigured().shoppingLists; }\n get promotions() { return this.ensureConfigured().promotions; }\n get prices() { return this.ensureConfigured().prices; }\n get filters() { return this.ensureConfigured().filters; }\n get images() { return this.ensureConfigured().images; }\n get variations() { return this.ensureConfigured().variations; }\n get reviews() { return this.ensureConfigured().reviews; }\n get variationReviews() { return this.ensureConfigured().variationReviews; }\n get stock() { return this.ensureConfigured().stock; }\n get suggestions() { return this.ensureConfigured().suggestions; }\n get addons() { return this.ensureConfigured().addons; }\n get myCarts() { return this.ensureConfigured().myCarts; }\n get remarketing() { return this.ensureConfigured().remarketing; }\n get visitors() { return this.ensureConfigured().visitors; }\n get productVendors() { return this.ensureConfigured().productVendors; }\n\n /** Full block access */\n get productsBlock(): ProductsBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createCrmBlock,\n type CrmBlock,\n type CrmBlockConfig,\n} from '@23blocks/block-crm';\nimport { TRANSPORT, CRM_TRANSPORT, CRM_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the CRM block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const accounts = await this.crmService.accounts.list({ page: 1, perPage: 20 });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class CrmService {\n private readonly block: CrmBlock | null;\n\n constructor(\n @Optional() @Inject(CRM_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(CRM_CONFIG) config: CrmBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createCrmBlock(transport, config) : null;\n }\n\n private ensureConfigured(): CrmBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] CrmService is not configured. ' +\n \"Add 'urls.crm' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get accounts() { return this.ensureConfigured().accounts; }\n get contacts() { return this.ensureConfigured().contacts; }\n get contactEvents() { return this.ensureConfigured().contactEvents; }\n get leads() { return this.ensureConfigured().leads; }\n get leadFollows() { return this.ensureConfigured().leadFollows; }\n get opportunities() { return this.ensureConfigured().opportunities; }\n get meetings() { return this.ensureConfigured().meetings; }\n get meetingParticipants() { return this.ensureConfigured().meetingParticipants; }\n get meetingBillings() { return this.ensureConfigured().meetingBillings; }\n get quotes() { return this.ensureConfigured().quotes; }\n get subscribers() { return this.ensureConfigured().subscribers; }\n get referrals() { return this.ensureConfigured().referrals; }\n get touches() { return this.ensureConfigured().touches; }\n get categories() { return this.ensureConfigured().categories; }\n get calendarAccounts() { return this.ensureConfigured().calendarAccounts; }\n get busyBlocks() { return this.ensureConfigured().busyBlocks; }\n get icsTokens() { return this.ensureConfigured().icsTokens; }\n get zoomMeetings() { return this.ensureConfigured().zoomMeetings; }\n get zoomHosts() { return this.ensureConfigured().zoomHosts; }\n get mailTemplates() { return this.ensureConfigured().mailTemplates; }\n get communications() { return this.ensureConfigured().communications; }\n get users() { return this.ensureConfigured().users; }\n get billingReports() { return this.ensureConfigured().billingReports; }\n get calendarSync() { return this.ensureConfigured().calendarSync; }\n\n /** Full block access */\n get crmBlock(): CrmBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createContentBlock,\n type ContentBlock,\n type ContentBlockConfig,\n} from '@23blocks/block-content';\nimport { TRANSPORT, CONTENT_TRANSPORT, CONTENT_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Content block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const posts = await this.contentService.posts.list({ page: 1, perPage: 10 });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class ContentService {\n private readonly block: ContentBlock | null;\n\n constructor(\n @Optional() @Inject(CONTENT_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(CONTENT_CONFIG) config: ContentBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createContentBlock(transport, config) : null;\n }\n\n private ensureConfigured(): ContentBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] ContentService is not configured. ' +\n \"Add 'urls.content' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get posts() { return this.ensureConfigured().posts; }\n get postVersions() { return this.ensureConfigured().postVersions; }\n get postTemplates() { return this.ensureConfigured().postTemplates; }\n get comments() { return this.ensureConfigured().comments; }\n get categories() { return this.ensureConfigured().categories; }\n get tags() { return this.ensureConfigured().tags; }\n get users() { return this.ensureConfigured().users; }\n get moderation() { return this.ensureConfigured().moderation; }\n get activity() { return this.ensureConfigured().activity; }\n get series() { return this.ensureConfigured().series; }\n\n /** Full block access */\n get contentBlock(): ContentBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createGeolocationBlock,\n type GeolocationBlock,\n type GeolocationBlockConfig,\n} from '@23blocks/block-geolocation';\nimport { TRANSPORT, GEOLOCATION_TRANSPORT, GEOLOCATION_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Geolocation block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const locations = await this.geolocationService.locations.list();\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class GeolocationService {\n private readonly block: GeolocationBlock | null;\n\n constructor(\n @Optional() @Inject(GEOLOCATION_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(GEOLOCATION_CONFIG) config: GeolocationBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createGeolocationBlock(transport, config) : null;\n }\n\n private ensureConfigured(): GeolocationBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] GeolocationService is not configured. ' +\n \"Add 'urls.geolocation' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get locations() { return this.ensureConfigured().locations; }\n get addresses() { return this.ensureConfigured().addresses; }\n get areas() { return this.ensureConfigured().areas; }\n get regions() { return this.ensureConfigured().regions; }\n get routes() { return this.ensureConfigured().routes; }\n get bookings() { return this.ensureConfigured().bookings; }\n get premises() { return this.ensureConfigured().premises; }\n get premiseEvents() { return this.ensureConfigured().premiseEvents; }\n get routeTracker() { return this.ensureConfigured().routeTracker; }\n get locationHours() { return this.ensureConfigured().locationHours; }\n get locationImages() { return this.ensureConfigured().locationImages; }\n get locationSlots() { return this.ensureConfigured().locationSlots; }\n get locationTaxes() { return this.ensureConfigured().locationTaxes; }\n get locationGroups() { return this.ensureConfigured().locationGroups; }\n get identities() { return this.ensureConfigured().identities; }\n get locationIdentities() { return this.ensureConfigured().locationIdentities; }\n get geoCountries() { return this.ensureConfigured().geoCountries; }\n get geoStates() { return this.ensureConfigured().geoStates; }\n get geoCities() { return this.ensureConfigured().geoCities; }\n\n /** Full block access */\n get geolocationBlock(): GeolocationBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createConversationsBlock,\n type ConversationsBlock,\n type ConversationsBlockConfig,\n} from '@23blocks/block-conversations';\nimport { TRANSPORT, CONVERSATIONS_TRANSPORT, CONVERSATIONS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Conversations block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const message = await this.conversationsService.messages.create({ contextId, content });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class ConversationsService {\n private readonly block: ConversationsBlock | null;\n\n constructor(\n @Optional() @Inject(CONVERSATIONS_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(CONVERSATIONS_CONFIG) config: ConversationsBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createConversationsBlock(transport, config) : null;\n }\n\n private ensureConfigured(): ConversationsBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] ConversationsService is not configured. ' +\n \"Add 'urls.conversations' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get messages() { return this.ensureConfigured().messages; }\n get draftMessages() { return this.ensureConfigured().draftMessages; }\n get groups() { return this.ensureConfigured().groups; }\n get groupInvites() { return this.ensureConfigured().groupInvites; }\n get notifications() { return this.ensureConfigured().notifications; }\n get conversations() { return this.ensureConfigured().conversations; }\n get websocketTokens() { return this.ensureConfigured().websocketTokens; }\n get contexts() { return this.ensureConfigured().contexts; }\n get notificationSettings() { return this.ensureConfigured().notificationSettings; }\n get availabilities() { return this.ensureConfigured().availabilities; }\n get messageFiles() { return this.ensureConfigured().messageFiles; }\n get sources() { return this.ensureConfigured().sources; }\n get users() { return this.ensureConfigured().users; }\n get meetings() { return this.ensureConfigured().meetings; }\n get webNotifications() { return this.ensureConfigured().webNotifications; }\n\n /** Full block access */\n get conversationsBlock(): ConversationsBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createFilesBlock,\n type FilesBlock,\n type FilesBlockConfig,\n} from '@23blocks/block-files';\nimport { TRANSPORT, FILES_TRANSPORT, FILES_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Files block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const files = await this.filesService.storageFiles.list();\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class FilesService {\n private readonly block: FilesBlock | null;\n\n constructor(\n @Optional() @Inject(FILES_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(FILES_CONFIG) config: FilesBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createFilesBlock(transport, config) : null;\n }\n\n private ensureConfigured(): FilesBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] FilesService is not configured. ' +\n \"Add 'urls.files' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get storageFiles() { return this.ensureConfigured().storageFiles; }\n get entityFiles() { return this.ensureConfigured().entityFiles; }\n get fileSchemas() { return this.ensureConfigured().fileSchemas; }\n get userFiles() { return this.ensureConfigured().userFiles; }\n get fileCategories() { return this.ensureConfigured().fileCategories; }\n get fileTags() { return this.ensureConfigured().fileTags; }\n get delegations() { return this.ensureConfigured().delegations; }\n get fileAccess() { return this.ensureConfigured().fileAccess; }\n get fileAccessRequests() { return this.ensureConfigured().fileAccessRequests; }\n\n /** Full block access */\n get filesBlock(): FilesBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createFormsBlock,\n type FormsBlock,\n type FormsBlockConfig,\n} from '@23blocks/block-forms';\nimport { TRANSPORT, FORMS_TRANSPORT, FORMS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Forms block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const forms = await this.formsService.forms.list();\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class FormsService {\n private readonly block: FormsBlock | null;\n\n constructor(\n @Optional() @Inject(FORMS_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(FORMS_CONFIG) config: FormsBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createFormsBlock(transport, config) : null;\n }\n\n private ensureConfigured(): FormsBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] FormsService is not configured. ' +\n \"Add 'urls.forms' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get forms() { return this.ensureConfigured().forms; }\n get schemas() { return this.ensureConfigured().schemas; }\n get schemaVersions() { return this.ensureConfigured().schemaVersions; }\n get instances() { return this.ensureConfigured().instances; }\n get sets() { return this.ensureConfigured().sets; }\n get landings() { return this.ensureConfigured().landings; }\n get subscriptions() { return this.ensureConfigured().subscriptions; }\n get appointments() { return this.ensureConfigured().appointments; }\n get surveys() { return this.ensureConfigured().surveys; }\n get referrals() { return this.ensureConfigured().referrals; }\n get mailTemplates() { return this.ensureConfigured().mailTemplates; }\n get applicationForms() { return this.ensureConfigured().applicationForms; }\n get crmSync() { return this.ensureConfigured().crmSync; }\n\n /** Full block access */\n get formsBlock(): FormsBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createAssetsBlock,\n type AssetsBlock,\n type AssetsBlockConfig,\n} from '@23blocks/block-assets';\nimport { TRANSPORT, ASSETS_TRANSPORT, ASSETS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Assets block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const assets = await this.assetsService.assets.list();\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class AssetsService {\n private readonly block: AssetsBlock | null;\n\n constructor(\n @Optional() @Inject(ASSETS_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(ASSETS_CONFIG) config: AssetsBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createAssetsBlock(transport, config) : null;\n }\n\n private ensureConfigured(): AssetsBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] AssetsService is not configured. ' +\n \"Add 'urls.assets' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get assets() { return this.ensureConfigured().assets; }\n get events() { return this.ensureConfigured().events; }\n get audits() { return this.ensureConfigured().audits; }\n get categories() { return this.ensureConfigured().categories; }\n get tags() { return this.ensureConfigured().tags; }\n get vendors() { return this.ensureConfigured().vendors; }\n get warehouses() { return this.ensureConfigured().warehouses; }\n get entities() { return this.ensureConfigured().entities; }\n get operations() { return this.ensureConfigured().operations; }\n get alerts() { return this.ensureConfigured().alerts; }\n get users() { return this.ensureConfigured().users; }\n get images() { return this.ensureConfigured().images; }\n\n /** Full block access */\n get assetsBlock(): AssetsBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createCampaignsBlock,\n type CampaignsBlock,\n type CampaignsBlockConfig,\n} from '@23blocks/block-campaigns';\nimport { TRANSPORT, CAMPAIGNS_TRANSPORT, CAMPAIGNS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Campaigns block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const campaigns = await this.campaignsService.campaigns.list({ page: 1, perPage: 10 });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class CampaignsService {\n private readonly block: CampaignsBlock | null;\n\n constructor(\n @Optional() @Inject(CAMPAIGNS_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(CAMPAIGNS_CONFIG) config: CampaignsBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createCampaignsBlock(transport, config) : null;\n }\n\n private ensureConfigured(): CampaignsBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] CampaignsService is not configured. ' +\n \"Add 'urls.campaigns' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get campaigns() { return this.ensureConfigured().campaigns; }\n get campaignMedia() { return this.ensureConfigured().campaignMedia; }\n get landingPages() { return this.ensureConfigured().landingPages; }\n get audiences() { return this.ensureConfigured().audiences; }\n get landingTemplates() { return this.ensureConfigured().landingTemplates; }\n get targets() { return this.ensureConfigured().targets; }\n get results() { return this.ensureConfigured().results; }\n get markets() { return this.ensureConfigured().markets; }\n get locations() { return this.ensureConfigured().locations; }\n get templates() { return this.ensureConfigured().templates; }\n get mediaResults() { return this.ensureConfigured().mediaResults; }\n get media() { return this.ensureConfigured().media; }\n\n /** Full block access */\n get campaignsBlock(): CampaignsBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createCompanyBlock,\n type CompanyBlock,\n type CompanyBlockConfig,\n} from '@23blocks/block-company';\nimport { TRANSPORT, COMPANY_TRANSPORT, COMPANY_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Company block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const companies = await this.companyService.companies.list();\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class CompanyService {\n private readonly block: CompanyBlock | null;\n\n constructor(\n @Optional() @Inject(COMPANY_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(COMPANY_CONFIG) config: CompanyBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createCompanyBlock(transport, config) : null;\n }\n\n private ensureConfigured(): CompanyBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] CompanyService is not configured. ' +\n \"Add 'urls.company' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get companies() { return this.ensureConfigured().companies; }\n get departments() { return this.ensureConfigured().departments; }\n get teams() { return this.ensureConfigured().teams; }\n get teamMembers() { return this.ensureConfigured().teamMembers; }\n get quarters() { return this.ensureConfigured().quarters; }\n get positions() { return this.ensureConfigured().positions; }\n get employeeAssignments() { return this.ensureConfigured().employeeAssignments; }\n\n /** Full block access */\n get companyBlock(): CompanyBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createRewardsBlock,\n type RewardsBlock,\n type RewardsBlockConfig,\n} from '@23blocks/block-rewards';\nimport { TRANSPORT, REWARDS_TRANSPORT, REWARDS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Rewards block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const rewards = await this.rewardsService.rewards.list({ status: 'active' });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class RewardsService {\n private readonly block: RewardsBlock | null;\n\n constructor(\n @Optional() @Inject(REWARDS_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(REWARDS_CONFIG) config: RewardsBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createRewardsBlock(transport, config) : null;\n }\n\n private ensureConfigured(): RewardsBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] RewardsService is not configured. ' +\n \"Add 'urls.rewards' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get rewards() { return this.ensureConfigured().rewards; }\n get coupons() { return this.ensureConfigured().coupons; }\n get loyalty() { return this.ensureConfigured().loyalty; }\n get badges() { return this.ensureConfigured().badges; }\n get couponConfigurations() { return this.ensureConfigured().couponConfigurations; }\n get offerCodes() { return this.ensureConfigured().offerCodes; }\n get expirationRules() { return this.ensureConfigured().expirationRules; }\n get customers() { return this.ensureConfigured().customers; }\n get badgeCategories() { return this.ensureConfigured().badgeCategories; }\n get moneyRules() { return this.ensureConfigured().moneyRules; }\n get productRules() { return this.ensureConfigured().productRules; }\n get eventRules() { return this.ensureConfigured().eventRules; }\n\n /** Full block access */\n get rewardsBlock(): RewardsBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createSalesBlock,\n type SalesBlock,\n type SalesBlockConfig,\n} from '@23blocks/block-sales';\nimport { TRANSPORT, SALES_TRANSPORT, SALES_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Sales block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const order = await this.salesService.orders.create({ ... });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class SalesService {\n private readonly block: SalesBlock | null;\n\n constructor(\n @Optional() @Inject(SALES_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(SALES_CONFIG) config: SalesBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createSalesBlock(transport, config) : null;\n }\n\n private ensureConfigured(): SalesBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] SalesService is not configured. ' +\n \"Add 'urls.sales' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get orders() { return this.ensureConfigured().orders; }\n get orderDetails() { return this.ensureConfigured().orderDetails; }\n get orderTaxes() { return this.ensureConfigured().orderTaxes; }\n get payments() { return this.ensureConfigured().payments; }\n get subscriptions() { return this.ensureConfigured().subscriptions; }\n get subscriptionModels() { return this.ensureConfigured().subscriptionModels; }\n get entities() { return this.ensureConfigured().entities; }\n get users() { return this.ensureConfigured().users; }\n get customers() { return this.ensureConfigured().customers; }\n get flexibleOrders() { return this.ensureConfigured().flexibleOrders; }\n get stripe() { return this.ensureConfigured().stripe; }\n get mercadopago() { return this.ensureConfigured().mercadopago; }\n get vendorPayments() { return this.ensureConfigured().vendorPayments; }\n\n /** Full block access */\n get salesBlock(): SalesBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createWalletBlock,\n type WalletBlock,\n type WalletBlockConfig,\n} from '@23blocks/block-wallet';\nimport { TRANSPORT, WALLET_TRANSPORT, WALLET_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Wallet block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const wallet = await this.walletService.wallets.create({ userUniqueId });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class WalletService {\n private readonly block: WalletBlock | null;\n\n constructor(\n @Optional() @Inject(WALLET_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(WALLET_CONFIG) config: WalletBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createWalletBlock(transport, config) : null;\n }\n\n private ensureConfigured(): WalletBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] WalletService is not configured. ' +\n \"Add 'urls.wallet' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get wallets() { return this.ensureConfigured().wallets; }\n get transactions() { return this.ensureConfigured().transactions; }\n get authorizationCodes() { return this.ensureConfigured().authorizationCodes; }\n get webhooks() { return this.ensureConfigured().webhooks; }\n\n /** Full block access */\n get walletBlock(): WalletBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createJarvisBlock,\n type JarvisBlock,\n type JarvisBlockConfig,\n} from '@23blocks/block-jarvis';\nimport { TRANSPORT, JARVIS_TRANSPORT, JARVIS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Jarvis block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const response = await this.jarvisService.agents.chat(agentId, { message });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class JarvisService {\n private readonly block: JarvisBlock | null;\n\n constructor(\n @Optional() @Inject(JARVIS_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(JARVIS_CONFIG) config: JarvisBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createJarvisBlock(transport, config) : null;\n }\n\n private ensureConfigured(): JarvisBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] JarvisService is not configured. ' +\n \"Add 'urls.jarvis' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get agents() { return this.ensureConfigured().agents; }\n get prompts() { return this.ensureConfigured().prompts; }\n get workflows() { return this.ensureConfigured().workflows; }\n get executions() { return this.ensureConfigured().executions; }\n get conversations() { return this.ensureConfigured().conversations; }\n get aiModels() { return this.ensureConfigured().aiModels; }\n get entities() { return this.ensureConfigured().entities; }\n get clusters() { return this.ensureConfigured().clusters; }\n get users() { return this.ensureConfigured().users; }\n get workflowParticipants() { return this.ensureConfigured().workflowParticipants; }\n get workflowSteps() { return this.ensureConfigured().workflowSteps; }\n get workflowInstances() { return this.ensureConfigured().workflowInstances; }\n get agentRuntime() { return this.ensureConfigured().agentRuntime; }\n get mailTemplates() { return this.ensureConfigured().mailTemplates; }\n get marvinChat() { return this.ensureConfigured().marvinChat; }\n get promptComments() { return this.ensureConfigured().promptComments; }\n get executionComments() { return this.ensureConfigured().executionComments; }\n\n /** Full block access */\n get jarvisBlock(): JarvisBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createOnboardingBlock,\n type OnboardingBlock,\n type OnboardingBlockConfig,\n} from '@23blocks/block-onboarding';\nimport { TRANSPORT, ONBOARDING_TRANSPORT, ONBOARDING_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Onboarding block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const onboarding = await this.onboardingService.onboardings.create({ code: 'user-onboarding', name: 'User Onboarding' });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class OnboardingService {\n private readonly block: OnboardingBlock | null;\n\n constructor(\n @Optional() @Inject(ONBOARDING_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(ONBOARDING_CONFIG) config: OnboardingBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createOnboardingBlock(transport, config) : null;\n }\n\n private ensureConfigured(): OnboardingBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] OnboardingService is not configured. ' +\n \"Add 'urls.onboarding' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get onboardings() { return this.ensureConfigured().onboardings; }\n get flows() { return this.ensureConfigured().flows; }\n get userJourneys() { return this.ensureConfigured().userJourneys; }\n get userIdentities() { return this.ensureConfigured().userIdentities; }\n get onboard() { return this.ensureConfigured().onboard; }\n get mailTemplates() { return this.ensureConfigured().mailTemplates; }\n get remarketing() { return this.ensureConfigured().remarketing; }\n\n /** Full block access */\n get onboardingBlock(): OnboardingBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createUniversityBlock,\n type UniversityBlock,\n type UniversityBlockConfig,\n} from '@23blocks/block-university';\nimport { TRANSPORT, UNIVERSITY_TRANSPORT, UNIVERSITY_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the University block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const courses = await this.universityService.courses.list({ page: 1, perPage: 10 });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class UniversityService {\n private readonly block: UniversityBlock | null;\n\n constructor(\n @Optional() @Inject(UNIVERSITY_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(UNIVERSITY_CONFIG) config: UniversityBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createUniversityBlock(transport, config) : null;\n }\n\n private ensureConfigured(): UniversityBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] UniversityService is not configured. ' +\n \"Add 'urls.university' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get courses() { return this.ensureConfigured().courses; }\n get lessons() { return this.ensureConfigured().lessons; }\n get enrollments() { return this.ensureConfigured().enrollments; }\n get assignments() { return this.ensureConfigured().assignments; }\n get submissions() { return this.ensureConfigured().submissions; }\n get subjects() { return this.ensureConfigured().subjects; }\n get teachers() { return this.ensureConfigured().teachers; }\n get students() { return this.ensureConfigured().students; }\n get courseGroups() { return this.ensureConfigured().courseGroups; }\n get coachingSessions() { return this.ensureConfigured().coachingSessions; }\n get tests() { return this.ensureConfigured().tests; }\n get registrationTokens() { return this.ensureConfigured().registrationTokens; }\n get placements() { return this.ensureConfigured().placements; }\n get calendars() { return this.ensureConfigured().calendars; }\n get matches() { return this.ensureConfigured().matches; }\n get attendance() { return this.ensureConfigured().attendance; }\n get notes() { return this.ensureConfigured().notes; }\n\n /** Full block access */\n get universityBlock(): UniversityBlock { return this.ensureConfigured(); }\n}\n","// ─────────────────────────────────────────────────────────────────────────────\n// Main API (Recommended)\n// ─────────────────────────────────────────────────────────────────────────────\nexport {\n // Main exports\n provideBlocks23,\n getBlocks23Providers,\n type ProviderConfig,\n type ServiceUrls,\n type AuthMode,\n type StorageType,\n type TokenManagerService,\n TOKEN_MANAGER,\n PROVIDER_CONFIG,\n\n // Backward compatibility (deprecated)\n type Simple23BlocksConfig,\n SIMPLE_CONFIG,\n} from './simple-providers';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Advanced API (Custom transport)\n// ─────────────────────────────────────────────────────────────────────────────\n// Tokens\nexport {\n // Legacy shared transport (deprecated)\n TRANSPORT,\n // Per-service transport tokens\n AUTHENTICATION_TRANSPORT,\n SEARCH_TRANSPORT,\n PRODUCTS_TRANSPORT,\n CRM_TRANSPORT,\n CONTENT_TRANSPORT,\n GEOLOCATION_TRANSPORT,\n CONVERSATIONS_TRANSPORT,\n FILES_TRANSPORT,\n FORMS_TRANSPORT,\n ASSETS_TRANSPORT,\n CAMPAIGNS_TRANSPORT,\n COMPANY_TRANSPORT,\n REWARDS_TRANSPORT,\n SALES_TRANSPORT,\n WALLET_TRANSPORT,\n JARVIS_TRANSPORT,\n ONBOARDING_TRANSPORT,\n UNIVERSITY_TRANSPORT,\n // Config tokens\n AUTHENTICATION_CONFIG,\n SEARCH_CONFIG,\n PRODUCTS_CONFIG,\n CRM_CONFIG,\n CONTENT_CONFIG,\n GEOLOCATION_CONFIG,\n CONVERSATIONS_CONFIG,\n FILES_CONFIG,\n FORMS_CONFIG,\n ASSETS_CONFIG,\n CAMPAIGNS_CONFIG,\n COMPANY_CONFIG,\n REWARDS_CONFIG,\n SALES_CONFIG,\n WALLET_CONFIG,\n JARVIS_CONFIG,\n ONBOARDING_CONFIG,\n UNIVERSITY_CONFIG,\n} from './tokens';\n\n// Provider functions (advanced - requires custom transport)\nexport { provide23Blocks, get23BlocksProviders, type Provide23BlocksConfig } from './providers';\n\n// Services\nexport { AuthenticationService } from './authentication/index';\nexport { SearchService } from './search/index';\nexport { ProductsService } from './products/index';\nexport { CrmService } from './crm/index';\nexport { ContentService } from './content/index';\nexport { GeolocationService } from './geolocation/index';\nexport { ConversationsService } from './conversations/index';\nexport { FilesService } from './files/index';\nexport { FormsService } from './forms/index';\nexport { AssetsService } from './assets/index';\nexport { CampaignsService } from './campaigns/index';\nexport { CompanyService } from './company/index';\nexport { RewardsService } from './rewards/index';\nexport { SalesService } from './sales/index';\nexport { WalletService } from './wallet/index';\nexport { JarvisService } from './jarvis/index';\nexport { OnboardingService } from './onboarding/index';\nexport { UniversityService } from './university/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"23blocks-angular.mjs","sources":["../../src/lib/tokens.ts","../../src/lib/simple-providers.ts","../../src/lib/providers.ts","../../src/lib/authentication/authentication.service.ts","../../src/lib/search/search.service.ts","../../src/lib/products/products.service.ts","../../src/lib/crm/crm.service.ts","../../src/lib/content/content.service.ts","../../src/lib/geolocation/geolocation.service.ts","../../src/lib/conversations/conversations.service.ts","../../src/lib/files/files.service.ts","../../src/lib/forms/forms.service.ts","../../src/lib/assets/assets.service.ts","../../src/lib/campaigns/campaigns.service.ts","../../src/lib/company/company.service.ts","../../src/lib/rewards/rewards.service.ts","../../src/lib/sales/sales.service.ts","../../src/lib/wallet/wallet.service.ts","../../src/lib/jarvis/jarvis.service.ts","../../src/lib/onboarding/onboarding.service.ts","../../src/lib/university/university.service.ts","../../src/lib/index.ts","../../src/23blocks-angular.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport type { AuthenticationBlockConfig } from '@23blocks/block-authentication';\nimport type { SearchBlockConfig } from '@23blocks/block-search';\nimport type { GeolocationBlockConfig } from '@23blocks/block-geolocation';\nimport type { ContentBlockConfig } from '@23blocks/block-content';\nimport type { CrmBlockConfig } from '@23blocks/block-crm';\nimport type { ProductsBlockConfig } from '@23blocks/block-products';\nimport type { ConversationsBlockConfig } from '@23blocks/block-conversations';\nimport type { FilesBlockConfig } from '@23blocks/block-files';\nimport type { AssetsBlockConfig } from '@23blocks/block-assets';\nimport type { FormsBlockConfig } from '@23blocks/block-forms';\nimport type { SalesBlockConfig } from '@23blocks/block-sales';\nimport type { CampaignsBlockConfig } from '@23blocks/block-campaigns';\nimport type { CompanyBlockConfig } from '@23blocks/block-company';\nimport type { RewardsBlockConfig } from '@23blocks/block-rewards';\nimport type { JarvisBlockConfig } from '@23blocks/block-jarvis';\nimport type { OnboardingBlockConfig } from '@23blocks/block-onboarding';\nimport type { UniversityBlockConfig } from '@23blocks/block-university';\nimport type { WalletBlockConfig } from '@23blocks/block-wallet';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Transport Tokens (per-service)\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * @deprecated Use per-service transport tokens (AUTHENTICATION_TRANSPORT, etc.)\n * Shared transport token - only for backward compatibility with advanced API\n */\nexport const TRANSPORT = new InjectionToken<Transport>('23blocks.transport');\n\n/** Transport for Authentication service */\nexport const AUTHENTICATION_TRANSPORT = new InjectionToken<Transport | null>('23blocks.authentication.transport');\n\n/** Transport for Search service */\nexport const SEARCH_TRANSPORT = new InjectionToken<Transport | null>('23blocks.search.transport');\n\n/** Transport for Products service */\nexport const PRODUCTS_TRANSPORT = new InjectionToken<Transport | null>('23blocks.products.transport');\n\n/** Transport for CRM service */\nexport const CRM_TRANSPORT = new InjectionToken<Transport | null>('23blocks.crm.transport');\n\n/** Transport for Content service */\nexport const CONTENT_TRANSPORT = new InjectionToken<Transport | null>('23blocks.content.transport');\n\n/** Transport for Geolocation service */\nexport const GEOLOCATION_TRANSPORT = new InjectionToken<Transport | null>('23blocks.geolocation.transport');\n\n/** Transport for Conversations service */\nexport const CONVERSATIONS_TRANSPORT = new InjectionToken<Transport | null>('23blocks.conversations.transport');\n\n/** Transport for Files service */\nexport const FILES_TRANSPORT = new InjectionToken<Transport | null>('23blocks.files.transport');\n\n/** Transport for Forms service */\nexport const FORMS_TRANSPORT = new InjectionToken<Transport | null>('23blocks.forms.transport');\n\n/** Transport for Assets service */\nexport const ASSETS_TRANSPORT = new InjectionToken<Transport | null>('23blocks.assets.transport');\n\n/** Transport for Campaigns service */\nexport const CAMPAIGNS_TRANSPORT = new InjectionToken<Transport | null>('23blocks.campaigns.transport');\n\n/** Transport for Company service */\nexport const COMPANY_TRANSPORT = new InjectionToken<Transport | null>('23blocks.company.transport');\n\n/** Transport for Rewards service */\nexport const REWARDS_TRANSPORT = new InjectionToken<Transport | null>('23blocks.rewards.transport');\n\n/** Transport for Sales service */\nexport const SALES_TRANSPORT = new InjectionToken<Transport | null>('23blocks.sales.transport');\n\n/** Transport for Wallet service */\nexport const WALLET_TRANSPORT = new InjectionToken<Transport | null>('23blocks.wallet.transport');\n\n/** Transport for Jarvis service */\nexport const JARVIS_TRANSPORT = new InjectionToken<Transport | null>('23blocks.jarvis.transport');\n\n/** Transport for Onboarding service */\nexport const ONBOARDING_TRANSPORT = new InjectionToken<Transport | null>('23blocks.onboarding.transport');\n\n/** Transport for University service */\nexport const UNIVERSITY_TRANSPORT = new InjectionToken<Transport | null>('23blocks.university.transport');\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Config Tokens (per-service)\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Injection token for Authentication block configuration\n */\nexport const AUTHENTICATION_CONFIG = new InjectionToken<AuthenticationBlockConfig>(\n '23blocks.authentication.config'\n);\n\n/**\n * Injection token for Search block configuration\n */\nexport const SEARCH_CONFIG = new InjectionToken<SearchBlockConfig>(\n '23blocks.search.config'\n);\n\n/**\n * Injection token for Geolocation block configuration\n */\nexport const GEOLOCATION_CONFIG = new InjectionToken<GeolocationBlockConfig>(\n '23blocks.geolocation.config'\n);\n\n/**\n * Injection token for Content block configuration\n */\nexport const CONTENT_CONFIG = new InjectionToken<ContentBlockConfig>(\n '23blocks.content.config'\n);\n\n/**\n * Injection token for CRM block configuration\n */\nexport const CRM_CONFIG = new InjectionToken<CrmBlockConfig>(\n '23blocks.crm.config'\n);\n\n/**\n * Injection token for Products block configuration\n */\nexport const PRODUCTS_CONFIG = new InjectionToken<ProductsBlockConfig>(\n '23blocks.products.config'\n);\n\n/**\n * Injection token for Conversations block configuration\n */\nexport const CONVERSATIONS_CONFIG = new InjectionToken<ConversationsBlockConfig>(\n '23blocks.conversations.config'\n);\n\n/**\n * Injection token for Files block configuration\n */\nexport const FILES_CONFIG = new InjectionToken<FilesBlockConfig>(\n '23blocks.files.config'\n);\n\n/**\n * Injection token for Assets block configuration\n */\nexport const ASSETS_CONFIG = new InjectionToken<AssetsBlockConfig>(\n '23blocks.assets.config'\n);\n\n/**\n * Injection token for Forms block configuration\n */\nexport const FORMS_CONFIG = new InjectionToken<FormsBlockConfig>(\n '23blocks.forms.config'\n);\n\n/**\n * Injection token for Sales block configuration\n */\nexport const SALES_CONFIG = new InjectionToken<SalesBlockConfig>(\n '23blocks.sales.config'\n);\n\n/**\n * Injection token for Campaigns block configuration\n */\nexport const CAMPAIGNS_CONFIG = new InjectionToken<CampaignsBlockConfig>(\n '23blocks.campaigns.config'\n);\n\n/**\n * Injection token for Company block configuration\n */\nexport const COMPANY_CONFIG = new InjectionToken<CompanyBlockConfig>(\n '23blocks.company.config'\n);\n\n/**\n * Injection token for Rewards block configuration\n */\nexport const REWARDS_CONFIG = new InjectionToken<RewardsBlockConfig>(\n '23blocks.rewards.config'\n);\n\n/**\n * Injection token for Jarvis block configuration\n */\nexport const JARVIS_CONFIG = new InjectionToken<JarvisBlockConfig>(\n '23blocks.jarvis.config'\n);\n\n/**\n * Injection token for Onboarding block configuration\n */\nexport const ONBOARDING_CONFIG = new InjectionToken<OnboardingBlockConfig>(\n '23blocks.onboarding.config'\n);\n\n/**\n * Injection token for University block configuration\n */\nexport const UNIVERSITY_CONFIG = new InjectionToken<UniversityBlockConfig>(\n '23blocks.university.config'\n);\n\n/**\n * Injection token for Wallet block configuration\n */\nexport const WALLET_CONFIG = new InjectionToken<WalletBlockConfig>(\n '23blocks.wallet.config'\n);\n","import type { Provider, EnvironmentProviders } from '@angular/core';\nimport { InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { createHttpTransport } from '@23blocks/transport-http';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n TRANSPORT,\n // Per-service transport tokens\n AUTHENTICATION_TRANSPORT,\n SEARCH_TRANSPORT,\n PRODUCTS_TRANSPORT,\n CRM_TRANSPORT,\n CONTENT_TRANSPORT,\n GEOLOCATION_TRANSPORT,\n CONVERSATIONS_TRANSPORT,\n FILES_TRANSPORT,\n FORMS_TRANSPORT,\n ASSETS_TRANSPORT,\n CAMPAIGNS_TRANSPORT,\n COMPANY_TRANSPORT,\n REWARDS_TRANSPORT,\n SALES_TRANSPORT,\n WALLET_TRANSPORT,\n JARVIS_TRANSPORT,\n ONBOARDING_TRANSPORT,\n UNIVERSITY_TRANSPORT,\n // Config tokens\n AUTHENTICATION_CONFIG,\n SEARCH_CONFIG,\n PRODUCTS_CONFIG,\n CRM_CONFIG,\n CONTENT_CONFIG,\n GEOLOCATION_CONFIG,\n CONVERSATIONS_CONFIG,\n FILES_CONFIG,\n FORMS_CONFIG,\n ASSETS_CONFIG,\n CAMPAIGNS_CONFIG,\n COMPANY_CONFIG,\n REWARDS_CONFIG,\n SALES_CONFIG,\n WALLET_CONFIG,\n JARVIS_CONFIG,\n ONBOARDING_CONFIG,\n UNIVERSITY_CONFIG,\n} from './tokens';\n\n/**\n * Authentication mode\n */\nexport type AuthMode = 'token' | 'cookie';\n\n/**\n * Storage type for token mode\n */\nexport type StorageType = 'localStorage' | 'sessionStorage' | 'memory';\n\n/**\n * Service URL configuration - each microservice has its own URL.\n * All URLs are optional - only configure the services you need.\n */\nexport interface ServiceUrls {\n /** Authentication service URL */\n authentication?: string;\n /** Search service URL */\n search?: string;\n /** Products service URL */\n products?: string;\n /** CRM service URL */\n crm?: string;\n /** Content service URL */\n content?: string;\n /** Geolocation service URL */\n geolocation?: string;\n /** Conversations service URL */\n conversations?: string;\n /** Files service URL */\n files?: string;\n /** Forms service URL */\n forms?: string;\n /** Assets service URL */\n assets?: string;\n /** Campaigns service URL */\n campaigns?: string;\n /** Company service URL */\n company?: string;\n /** Rewards service URL */\n rewards?: string;\n /** Sales service URL */\n sales?: string;\n /** Wallet service URL */\n wallet?: string;\n /** Jarvis (AI) service URL */\n jarvis?: string;\n /** Onboarding service URL */\n onboarding?: string;\n /** University (LMS) service URL */\n university?: string;\n}\n\n/**\n * Configuration for providing 23blocks services\n */\nexport interface ProviderConfig {\n /**\n * Service URLs for each microservice.\n * Only configure the services you need - accessing a service without\n * a configured URL will throw an error.\n *\n * @example\n * ```typescript\n * provideBlocks23({\n * apiKey: 'your-api-key',\n * urls: {\n * authentication: 'https://gateway.23blocks.com',\n * crm: 'https://crm.23blocks.com',\n * products: 'https://products.23blocks.com',\n * },\n * })\n * ```\n */\n urls: ServiceUrls;\n\n /**\n * API Key for authenticating with 23blocks services\n */\n apiKey: string;\n\n /**\n * Tenant ID (optional, for multi-tenant setups)\n */\n tenantId?: string;\n\n /**\n * Authentication mode\n * - 'token' (default): SDK stores tokens in localStorage/sessionStorage/memory\n * - 'cookie': Backend manages auth via httpOnly cookies\n */\n authMode?: AuthMode;\n\n /**\n * Storage type for token mode\n * @default 'localStorage'\n */\n storage?: StorageType;\n\n /**\n * Additional headers to include with every request\n */\n headers?: Record<string, string>;\n\n /**\n * Request timeout in milliseconds\n * @default 30000\n */\n timeout?: number;\n}\n\n/**\n * Injection token for the token manager (internal use)\n */\nexport const TOKEN_MANAGER = new InjectionToken<TokenManagerService>('23blocks.token-manager');\n\n/**\n * Injection token for provider config\n */\nexport const PROVIDER_CONFIG = new InjectionToken<ProviderConfig>('23blocks.provider-config');\n\n/** @deprecated Use PROVIDER_CONFIG instead */\nexport const SIMPLE_CONFIG = PROVIDER_CONFIG;\n\n/**\n * Token manager interface\n */\nexport interface TokenManagerService {\n getAccessToken(): string | null;\n getRefreshToken(): string | null;\n setTokens(accessToken: string, refreshToken?: string): void;\n clearTokens(): void;\n /**\n * Subscribe to storage changes from other tabs/windows.\n * Returns an unsubscribe function.\n */\n onStorageChange(callback: () => void): () => void;\n}\n\n/**\n * Generate storage key scoped to API key and tenant\n */\nfunction getStorageKey(type: 'access' | 'refresh', apiKey: string, tenantId?: string): string {\n const scope = tenantId ? `${apiKey}_${tenantId}` : apiKey;\n return `23blocks_${scope}_${type}_token`;\n}\n\n/**\n * In-memory storage for SSR\n */\nclass MemoryStorage {\n private data = new Map<string, string>();\n getItem(key: string): string | null {\n return this.data.get(key) ?? null;\n }\n setItem(key: string, value: string): void {\n this.data.set(key, value);\n }\n removeItem(key: string): void {\n this.data.delete(key);\n }\n}\n\n/**\n * Create a token manager with scoped storage keys and cross-tab sync\n */\nfunction createTokenManager(\n apiKey: string,\n storageType: StorageType,\n tenantId?: string\n): TokenManagerService {\n const isBrowser = typeof window !== 'undefined' && typeof window.localStorage !== 'undefined';\n\n const accessTokenKey = getStorageKey('access', apiKey, tenantId);\n const refreshTokenKey = getStorageKey('refresh', apiKey, tenantId);\n\n let storage: Storage | MemoryStorage;\n if (!isBrowser) {\n storage = new MemoryStorage();\n } else {\n switch (storageType) {\n case 'sessionStorage':\n storage = window.sessionStorage;\n break;\n case 'memory':\n storage = new MemoryStorage();\n break;\n default:\n storage = window.localStorage;\n }\n }\n\n return {\n getAccessToken(): string | null {\n try {\n return storage.getItem(accessTokenKey);\n } catch {\n return null;\n }\n },\n getRefreshToken(): string | null {\n try {\n return storage.getItem(refreshTokenKey);\n } catch {\n return null;\n }\n },\n setTokens(accessToken: string, refreshToken?: string): void {\n try {\n storage.setItem(accessTokenKey, accessToken);\n if (refreshToken) {\n storage.setItem(refreshTokenKey, refreshToken);\n }\n } catch {\n console.warn('[23blocks] Unable to store tokens');\n }\n },\n clearTokens(): void {\n try {\n storage.removeItem(accessTokenKey);\n storage.removeItem(refreshTokenKey);\n } catch {\n // Silently fail\n }\n },\n onStorageChange(callback: () => void): () => void {\n // Only works in browser with localStorage/sessionStorage\n if (!isBrowser || storageType === 'memory') {\n // Return no-op unsubscribe for SSR/memory storage\n return () => {};\n }\n\n const handler = (event: StorageEvent) => {\n // Only trigger if our keys changed\n if (event.key === accessTokenKey || event.key === refreshTokenKey) {\n callback();\n }\n };\n\n window.addEventListener('storage', handler);\n\n // Return unsubscribe function\n return () => {\n window.removeEventListener('storage', handler);\n };\n },\n };\n}\n\n/**\n * Create transport with automatic token handling for a specific URL\n */\nfunction createTransportWithAuth(\n baseUrl: string,\n config: ProviderConfig,\n tokenManager: TokenManagerService\n): Transport {\n return createHttpTransport({\n baseUrl,\n timeout: config.timeout,\n credentials: config.authMode === 'cookie' ? 'include' : undefined,\n headers: () => {\n const headers: Record<string, string> = {\n ...config.headers,\n 'x-api-key': config.apiKey,\n };\n\n if (config.tenantId) {\n headers['tenant-id'] = config.tenantId;\n }\n\n // In token mode, add Authorization header if we have a token\n if (config.authMode !== 'cookie') {\n const token = tokenManager.getAccessToken();\n if (token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n }\n\n return headers;\n },\n });\n}\n\n/**\n * Provide 23blocks services with simplified configuration.\n *\n * This is the recommended way to set up 23blocks in new Angular applications.\n * It automatically handles token storage and authentication headers.\n *\n * Services are only available if their URL is configured. Accessing a service\n * without a configured URL will throw an error.\n *\n * @example Basic usage with multiple services\n * ```typescript\n * // app.config.ts\n * import { ApplicationConfig } from '@angular/core';\n * import { provideBlocks23 } from '@23blocks/angular';\n *\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideBlocks23({\n * apiKey: 'your-api-key',\n * urls: {\n * authentication: 'https://gateway.23blocks.com',\n * crm: 'https://crm.23blocks.com',\n * products: 'https://products.23blocks.com',\n * },\n * }),\n * ],\n * };\n * ```\n *\n * @example Cookie mode (recommended for security)\n * ```typescript\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideBlocks23({\n * apiKey: 'your-api-key',\n * authMode: 'cookie',\n * urls: {\n * authentication: 'https://gateway.23blocks.com',\n * crm: 'https://crm.23blocks.com',\n * },\n * }),\n * ],\n * };\n * ```\n */\nexport function provideBlocks23(config: ProviderConfig): EnvironmentProviders {\n // Block config for all services\n const blockConfig = { apiKey: config.apiKey, tenantId: config.tenantId };\n\n // Helper to create transport provider for a service URL\n const createTransportProvider = (\n token: InjectionToken<Transport | null>,\n url: string | undefined\n ): Provider => ({\n provide: token,\n useFactory: (tokenManager: TokenManagerService) => {\n if (!url) return null;\n return createTransportWithAuth(url, config, tokenManager);\n },\n deps: [TOKEN_MANAGER],\n });\n\n const providers: Provider[] = [\n // Store config for injection\n { provide: PROVIDER_CONFIG, useValue: config },\n\n // Token manager factory - creates singleton within the injector\n {\n provide: TOKEN_MANAGER,\n useFactory: () => {\n const storage = config.storage ?? 'localStorage';\n return createTokenManager(config.apiKey, storage, config.tenantId);\n },\n },\n\n // Per-service transport factories (null if URL not configured)\n createTransportProvider(AUTHENTICATION_TRANSPORT, config.urls.authentication),\n createTransportProvider(SEARCH_TRANSPORT, config.urls.search),\n createTransportProvider(PRODUCTS_TRANSPORT, config.urls.products),\n createTransportProvider(CRM_TRANSPORT, config.urls.crm),\n createTransportProvider(CONTENT_TRANSPORT, config.urls.content),\n createTransportProvider(GEOLOCATION_TRANSPORT, config.urls.geolocation),\n createTransportProvider(CONVERSATIONS_TRANSPORT, config.urls.conversations),\n createTransportProvider(FILES_TRANSPORT, config.urls.files),\n createTransportProvider(FORMS_TRANSPORT, config.urls.forms),\n createTransportProvider(ASSETS_TRANSPORT, config.urls.assets),\n createTransportProvider(CAMPAIGNS_TRANSPORT, config.urls.campaigns),\n createTransportProvider(COMPANY_TRANSPORT, config.urls.company),\n createTransportProvider(REWARDS_TRANSPORT, config.urls.rewards),\n createTransportProvider(SALES_TRANSPORT, config.urls.sales),\n createTransportProvider(WALLET_TRANSPORT, config.urls.wallet),\n createTransportProvider(JARVIS_TRANSPORT, config.urls.jarvis),\n createTransportProvider(ONBOARDING_TRANSPORT, config.urls.onboarding),\n createTransportProvider(UNIVERSITY_TRANSPORT, config.urls.university),\n\n // Backward compatibility: provide TRANSPORT token using auth URL if available\n // (for advanced API users who still inject TRANSPORT directly)\n {\n provide: TRANSPORT,\n useFactory: (tokenManager: TokenManagerService) => {\n // Use auth URL if available, otherwise create a dummy transport that throws\n const url = config.urls.authentication;\n if (url) {\n return createTransportWithAuth(url, config, tokenManager);\n }\n // Return a transport that throws helpful errors\n return {\n request: () => {\n throw new Error(\n '[23blocks] TRANSPORT is not configured. ' +\n 'Use per-service transport tokens or configure urls.authentication.'\n );\n },\n };\n },\n deps: [TOKEN_MANAGER],\n },\n\n // Block configs\n { provide: AUTHENTICATION_CONFIG, useValue: blockConfig },\n { provide: SEARCH_CONFIG, useValue: blockConfig },\n { provide: PRODUCTS_CONFIG, useValue: blockConfig },\n { provide: CRM_CONFIG, useValue: blockConfig },\n { provide: CONTENT_CONFIG, useValue: blockConfig },\n { provide: GEOLOCATION_CONFIG, useValue: blockConfig },\n { provide: CONVERSATIONS_CONFIG, useValue: blockConfig },\n { provide: FILES_CONFIG, useValue: blockConfig },\n { provide: FORMS_CONFIG, useValue: blockConfig },\n { provide: ASSETS_CONFIG, useValue: blockConfig },\n { provide: CAMPAIGNS_CONFIG, useValue: blockConfig },\n { provide: COMPANY_CONFIG, useValue: blockConfig },\n { provide: REWARDS_CONFIG, useValue: blockConfig },\n { provide: SALES_CONFIG, useValue: blockConfig },\n { provide: WALLET_CONFIG, useValue: blockConfig },\n { provide: JARVIS_CONFIG, useValue: blockConfig },\n { provide: ONBOARDING_CONFIG, useValue: blockConfig },\n { provide: UNIVERSITY_CONFIG, useValue: blockConfig },\n ];\n\n return makeEnvironmentProviders(providers);\n}\n\n/**\n * Get providers array for NgModule-based applications with simplified config.\n *\n * Services are only available if their URL is configured. Accessing a service\n * without a configured URL will throw an error.\n *\n * @example\n * ```typescript\n * // app.module.ts\n * import { NgModule } from '@angular/core';\n * import { getBlocks23Providers } from '@23blocks/angular';\n *\n * @NgModule({\n * providers: [\n * ...getBlocks23Providers({\n * apiKey: 'your-api-key',\n * urls: {\n * authentication: 'https://gateway.23blocks.com',\n * crm: 'https://crm.23blocks.com',\n * },\n * }),\n * ],\n * })\n * export class AppModule {}\n * ```\n */\nexport function getBlocks23Providers(config: ProviderConfig): Provider[] {\n // Block config for all services\n const blockConfig = { apiKey: config.apiKey, tenantId: config.tenantId };\n\n // Helper to create transport provider for a service URL\n const createTransportProvider = (\n token: InjectionToken<Transport | null>,\n url: string | undefined\n ): Provider => ({\n provide: token,\n useFactory: (tokenManager: TokenManagerService) => {\n if (!url) return null;\n return createTransportWithAuth(url, config, tokenManager);\n },\n deps: [TOKEN_MANAGER],\n });\n\n return [\n // Store config for injection\n { provide: PROVIDER_CONFIG, useValue: config },\n\n // Token manager factory - creates singleton within the injector\n {\n provide: TOKEN_MANAGER,\n useFactory: () => {\n const storage = config.storage ?? 'localStorage';\n return createTokenManager(config.apiKey, storage, config.tenantId);\n },\n },\n\n // Per-service transport factories (null if URL not configured)\n createTransportProvider(AUTHENTICATION_TRANSPORT, config.urls.authentication),\n createTransportProvider(SEARCH_TRANSPORT, config.urls.search),\n createTransportProvider(PRODUCTS_TRANSPORT, config.urls.products),\n createTransportProvider(CRM_TRANSPORT, config.urls.crm),\n createTransportProvider(CONTENT_TRANSPORT, config.urls.content),\n createTransportProvider(GEOLOCATION_TRANSPORT, config.urls.geolocation),\n createTransportProvider(CONVERSATIONS_TRANSPORT, config.urls.conversations),\n createTransportProvider(FILES_TRANSPORT, config.urls.files),\n createTransportProvider(FORMS_TRANSPORT, config.urls.forms),\n createTransportProvider(ASSETS_TRANSPORT, config.urls.assets),\n createTransportProvider(CAMPAIGNS_TRANSPORT, config.urls.campaigns),\n createTransportProvider(COMPANY_TRANSPORT, config.urls.company),\n createTransportProvider(REWARDS_TRANSPORT, config.urls.rewards),\n createTransportProvider(SALES_TRANSPORT, config.urls.sales),\n createTransportProvider(WALLET_TRANSPORT, config.urls.wallet),\n createTransportProvider(JARVIS_TRANSPORT, config.urls.jarvis),\n createTransportProvider(ONBOARDING_TRANSPORT, config.urls.onboarding),\n createTransportProvider(UNIVERSITY_TRANSPORT, config.urls.university),\n\n // Backward compatibility: provide TRANSPORT token using auth URL if available\n {\n provide: TRANSPORT,\n useFactory: (tokenManager: TokenManagerService) => {\n const url = config.urls.authentication;\n if (url) {\n return createTransportWithAuth(url, config, tokenManager);\n }\n return {\n request: () => {\n throw new Error(\n '[23blocks] TRANSPORT is not configured. ' +\n 'Use per-service transport tokens or configure urls.authentication.'\n );\n },\n };\n },\n deps: [TOKEN_MANAGER],\n },\n\n // Block configs\n { provide: AUTHENTICATION_CONFIG, useValue: blockConfig },\n { provide: SEARCH_CONFIG, useValue: blockConfig },\n { provide: PRODUCTS_CONFIG, useValue: blockConfig },\n { provide: CRM_CONFIG, useValue: blockConfig },\n { provide: CONTENT_CONFIG, useValue: blockConfig },\n { provide: GEOLOCATION_CONFIG, useValue: blockConfig },\n { provide: CONVERSATIONS_CONFIG, useValue: blockConfig },\n { provide: FILES_CONFIG, useValue: blockConfig },\n { provide: FORMS_CONFIG, useValue: blockConfig },\n { provide: ASSETS_CONFIG, useValue: blockConfig },\n { provide: CAMPAIGNS_CONFIG, useValue: blockConfig },\n { provide: COMPANY_CONFIG, useValue: blockConfig },\n { provide: REWARDS_CONFIG, useValue: blockConfig },\n { provide: SALES_CONFIG, useValue: blockConfig },\n { provide: WALLET_CONFIG, useValue: blockConfig },\n { provide: JARVIS_CONFIG, useValue: blockConfig },\n { provide: ONBOARDING_CONFIG, useValue: blockConfig },\n { provide: UNIVERSITY_CONFIG, useValue: blockConfig },\n ];\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Backward Compatibility Aliases (deprecated)\n// ─────────────────────────────────────────────────────────────────────────────\n\n/** @deprecated Use `ProviderConfig` instead */\nexport type Simple23BlocksConfig = ProviderConfig;\n","import type { Provider, EnvironmentProviders } from '@angular/core';\nimport { makeEnvironmentProviders } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport type { AuthenticationBlockConfig } from '@23blocks/block-authentication';\nimport type { SearchBlockConfig } from '@23blocks/block-search';\nimport type { ProductsBlockConfig } from '@23blocks/block-products';\nimport type { CrmBlockConfig } from '@23blocks/block-crm';\nimport type { ContentBlockConfig } from '@23blocks/block-content';\nimport type { GeolocationBlockConfig } from '@23blocks/block-geolocation';\nimport type { ConversationsBlockConfig } from '@23blocks/block-conversations';\nimport type { FilesBlockConfig } from '@23blocks/block-files';\nimport type { FormsBlockConfig } from '@23blocks/block-forms';\nimport type { AssetsBlockConfig } from '@23blocks/block-assets';\nimport type { CampaignsBlockConfig } from '@23blocks/block-campaigns';\nimport type { CompanyBlockConfig } from '@23blocks/block-company';\nimport type { RewardsBlockConfig } from '@23blocks/block-rewards';\nimport type { SalesBlockConfig } from '@23blocks/block-sales';\nimport type { WalletBlockConfig } from '@23blocks/block-wallet';\nimport type { JarvisBlockConfig } from '@23blocks/block-jarvis';\nimport type { OnboardingBlockConfig } from '@23blocks/block-onboarding';\nimport type { UniversityBlockConfig } from '@23blocks/block-university';\nimport {\n TRANSPORT,\n AUTHENTICATION_CONFIG,\n SEARCH_CONFIG,\n PRODUCTS_CONFIG,\n CRM_CONFIG,\n CONTENT_CONFIG,\n GEOLOCATION_CONFIG,\n CONVERSATIONS_CONFIG,\n FILES_CONFIG,\n FORMS_CONFIG,\n ASSETS_CONFIG,\n CAMPAIGNS_CONFIG,\n COMPANY_CONFIG,\n REWARDS_CONFIG,\n SALES_CONFIG,\n WALLET_CONFIG,\n JARVIS_CONFIG,\n ONBOARDING_CONFIG,\n UNIVERSITY_CONFIG,\n} from './tokens';\n\n/**\n * Configuration for providing 23blocks services\n */\nexport interface Provide23BlocksConfig {\n transport: Transport;\n authentication?: AuthenticationBlockConfig;\n search?: SearchBlockConfig;\n products?: ProductsBlockConfig;\n crm?: CrmBlockConfig;\n content?: ContentBlockConfig;\n geolocation?: GeolocationBlockConfig;\n conversations?: ConversationsBlockConfig;\n files?: FilesBlockConfig;\n forms?: FormsBlockConfig;\n assets?: AssetsBlockConfig;\n campaigns?: CampaignsBlockConfig;\n company?: CompanyBlockConfig;\n rewards?: RewardsBlockConfig;\n sales?: SalesBlockConfig;\n wallet?: WalletBlockConfig;\n jarvis?: JarvisBlockConfig;\n onboarding?: OnboardingBlockConfig;\n university?: UniversityBlockConfig;\n}\n\n/**\n * Provide 23blocks services for standalone Angular applications.\n *\n * @example\n * ```typescript\n * // app.config.ts\n * import { ApplicationConfig } from '@angular/core';\n * import { provide23Blocks } from '@23blocks/angular';\n * import { createHttpTransport } from '@23blocks/transport-http';\n *\n * const transport = createHttpTransport({\n * baseUrl: 'https://api.example.com',\n * headers: () => ({\n * 'Authorization': `Bearer ${localStorage.getItem('token')}`,\n * }),\n * });\n *\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provide23Blocks({\n * transport,\n * authentication: { apiKey: 'my-api-key' },\n * search: { apiKey: 'my-api-key' },\n * products: { apiKey: 'my-api-key' },\n * crm: { apiKey: 'my-api-key' },\n * }),\n * ],\n * };\n * ```\n */\nexport function provide23Blocks(config: Provide23BlocksConfig): EnvironmentProviders {\n const providers: Provider[] = [\n { provide: TRANSPORT, useValue: config.transport },\n ];\n\n if (config.authentication) {\n providers.push({ provide: AUTHENTICATION_CONFIG, useValue: config.authentication });\n }\n if (config.search) {\n providers.push({ provide: SEARCH_CONFIG, useValue: config.search });\n }\n if (config.products) {\n providers.push({ provide: PRODUCTS_CONFIG, useValue: config.products });\n }\n if (config.crm) {\n providers.push({ provide: CRM_CONFIG, useValue: config.crm });\n }\n if (config.content) {\n providers.push({ provide: CONTENT_CONFIG, useValue: config.content });\n }\n if (config.geolocation) {\n providers.push({ provide: GEOLOCATION_CONFIG, useValue: config.geolocation });\n }\n if (config.conversations) {\n providers.push({ provide: CONVERSATIONS_CONFIG, useValue: config.conversations });\n }\n if (config.files) {\n providers.push({ provide: FILES_CONFIG, useValue: config.files });\n }\n if (config.forms) {\n providers.push({ provide: FORMS_CONFIG, useValue: config.forms });\n }\n if (config.assets) {\n providers.push({ provide: ASSETS_CONFIG, useValue: config.assets });\n }\n if (config.campaigns) {\n providers.push({ provide: CAMPAIGNS_CONFIG, useValue: config.campaigns });\n }\n if (config.company) {\n providers.push({ provide: COMPANY_CONFIG, useValue: config.company });\n }\n if (config.rewards) {\n providers.push({ provide: REWARDS_CONFIG, useValue: config.rewards });\n }\n if (config.sales) {\n providers.push({ provide: SALES_CONFIG, useValue: config.sales });\n }\n if (config.wallet) {\n providers.push({ provide: WALLET_CONFIG, useValue: config.wallet });\n }\n if (config.jarvis) {\n providers.push({ provide: JARVIS_CONFIG, useValue: config.jarvis });\n }\n if (config.onboarding) {\n providers.push({ provide: ONBOARDING_CONFIG, useValue: config.onboarding });\n }\n if (config.university) {\n providers.push({ provide: UNIVERSITY_CONFIG, useValue: config.university });\n }\n\n return makeEnvironmentProviders(providers);\n}\n\n/**\n * Get providers array for NgModule-based applications.\n *\n * @example\n * ```typescript\n * // app.module.ts\n * import { NgModule } from '@angular/core';\n * import { get23BlocksProviders } from '@23blocks/angular';\n *\n * @NgModule({\n * providers: [\n * ...get23BlocksProviders({\n * transport,\n * authentication: { apiKey: 'my-api-key' },\n * }),\n * ],\n * })\n * export class AppModule {}\n * ```\n */\nexport function get23BlocksProviders(config: Provide23BlocksConfig): Provider[] {\n const providers: Provider[] = [\n { provide: TRANSPORT, useValue: config.transport },\n ];\n\n if (config.authentication) {\n providers.push({ provide: AUTHENTICATION_CONFIG, useValue: config.authentication });\n }\n if (config.search) {\n providers.push({ provide: SEARCH_CONFIG, useValue: config.search });\n }\n if (config.products) {\n providers.push({ provide: PRODUCTS_CONFIG, useValue: config.products });\n }\n if (config.crm) {\n providers.push({ provide: CRM_CONFIG, useValue: config.crm });\n }\n if (config.content) {\n providers.push({ provide: CONTENT_CONFIG, useValue: config.content });\n }\n if (config.geolocation) {\n providers.push({ provide: GEOLOCATION_CONFIG, useValue: config.geolocation });\n }\n if (config.conversations) {\n providers.push({ provide: CONVERSATIONS_CONFIG, useValue: config.conversations });\n }\n if (config.files) {\n providers.push({ provide: FILES_CONFIG, useValue: config.files });\n }\n if (config.forms) {\n providers.push({ provide: FORMS_CONFIG, useValue: config.forms });\n }\n if (config.assets) {\n providers.push({ provide: ASSETS_CONFIG, useValue: config.assets });\n }\n if (config.campaigns) {\n providers.push({ provide: CAMPAIGNS_CONFIG, useValue: config.campaigns });\n }\n if (config.company) {\n providers.push({ provide: COMPANY_CONFIG, useValue: config.company });\n }\n if (config.rewards) {\n providers.push({ provide: REWARDS_CONFIG, useValue: config.rewards });\n }\n if (config.sales) {\n providers.push({ provide: SALES_CONFIG, useValue: config.sales });\n }\n if (config.wallet) {\n providers.push({ provide: WALLET_CONFIG, useValue: config.wallet });\n }\n if (config.jarvis) {\n providers.push({ provide: JARVIS_CONFIG, useValue: config.jarvis });\n }\n if (config.onboarding) {\n providers.push({ provide: ONBOARDING_CONFIG, useValue: config.onboarding });\n }\n if (config.university) {\n providers.push({ provide: UNIVERSITY_CONFIG, useValue: config.university });\n }\n\n return providers;\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from, tap } from 'rxjs';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createAuthenticationBlock,\n type AuthenticationBlock,\n type AuthenticationBlockConfig,\n type SignInRequest,\n type SignInResponse,\n type SignUpRequest,\n type SignUpResponse,\n type RefreshTokenRequest,\n type RefreshTokenResponse,\n type MagicLinkVerifyRequest,\n type AcceptInvitationRequest,\n type OAuthSocialLoginRequest,\n type TenantLoginRequest,\n} from '@23blocks/block-authentication';\nimport { TRANSPORT, AUTHENTICATION_TRANSPORT, AUTHENTICATION_CONFIG } from '../tokens';\nimport { TOKEN_MANAGER, SIMPLE_CONFIG, type TokenManagerService, type Simple23BlocksConfig } from '../simple-providers';\n\n/**\n * Angular service wrapping the Authentication block.\n *\n * Auth-flow methods (signIn, signUp, signOut, OAuth, etc.) return Observables\n * with automatic token management via `tap()`.\n *\n * All other sub-services are exposed as typed getters returning Promise-based APIs.\n * Use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * // Auth flows (Observable with token management):\n * this.auth.signIn({ email, password }).subscribe(...)\n *\n * // Other services (Promise-based, wrap in from() if needed):\n * const user = await this.auth.users.get(userId);\n * from(this.auth.roles.list()).subscribe(...)\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class AuthenticationService {\n private readonly block: AuthenticationBlock | null;\n private readonly tokenManager: TokenManagerService | null;\n private readonly simpleConfig: Simple23BlocksConfig | null;\n\n constructor(\n @Optional() @Inject(AUTHENTICATION_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(AUTHENTICATION_CONFIG) config: AuthenticationBlockConfig,\n @Optional() @Inject(TOKEN_MANAGER) tokenManager: TokenManagerService | null,\n @Optional() @Inject(SIMPLE_CONFIG) simpleConfig: Simple23BlocksConfig | null\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createAuthenticationBlock(transport, config) : null;\n this.tokenManager = tokenManager;\n this.simpleConfig = simpleConfig;\n }\n\n private ensureConfigured(): AuthenticationBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] AuthenticationService is not configured. ' +\n \"Add 'urls.authentication' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n private get isTokenMode(): boolean {\n return this.tokenManager !== null && this.simpleConfig?.authMode !== 'cookie';\n }\n\n private storeTokens(response: SignInResponse | RefreshTokenResponse): void {\n if (this.isTokenMode && this.tokenManager && response.accessToken) {\n this.tokenManager.setTokens(\n response.accessToken,\n 'refreshToken' in response ? response.refreshToken : undefined\n );\n }\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Auth-flow methods (Observable with token management)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Sign in with email and password.\n * Returns an Observable that emits the sign-in response and automatically\n * stores access/refresh tokens in token mode.\n *\n * @param request - Email and password credentials\n * @returns Observable emitting SignInResponse with `user`, `accessToken`,\n * optional `refreshToken`, `tokenType`, and `expiresIn`\n * @example\n * ```typescript\n * this.authService.signIn({ email: 'user@example.com', password: 'secret' })\n * .subscribe(({ user, accessToken }) => console.log('Signed in:', user.email));\n * ```\n */\n signIn(request: SignInRequest): Observable<SignInResponse> {\n return from(this.ensureConfigured().auth.signIn(request)).pipe(\n tap((response) => this.storeTokens(response))\n );\n }\n\n /**\n * Sign up a new user.\n * Returns an Observable that emits the sign-up response and automatically\n * stores tokens if email confirmation is not required.\n *\n * @param request - User registration data (email, password, etc.)\n * @returns Observable emitting SignUpResponse with `user`, optional `accessToken`\n * (absent if email confirmation is required), and optional `message`\n * @note If email confirmation is enabled, `accessToken` will be undefined until confirmed.\n */\n signUp(request: SignUpRequest): Observable<SignUpResponse> {\n return from(this.ensureConfigured().auth.signUp(request)).pipe(\n tap((response) => {\n if (this.isTokenMode && this.tokenManager && response.accessToken) {\n this.tokenManager.setTokens(response.accessToken);\n }\n })\n );\n }\n\n /**\n * Sign out the current user.\n * Invalidates the session server-side and clears locally stored tokens in token mode.\n *\n * @returns Observable that completes on successful sign-out\n */\n signOut(): Observable<void> {\n return from(this.ensureConfigured().auth.signOut()).pipe(\n tap(() => {\n if (this.isTokenMode && this.tokenManager) {\n this.tokenManager.clearTokens();\n }\n })\n );\n }\n\n /**\n * Refresh the access token using a refresh token.\n * Automatically stores the new token pair in token mode.\n *\n * @param request - Contains the `refreshToken` to exchange\n * @returns Observable emitting RefreshTokenResponse with new `accessToken`,\n * optional new `refreshToken`, `tokenType`, and `expiresIn`\n */\n refreshToken(request: RefreshTokenRequest): Observable<RefreshTokenResponse> {\n return from(this.ensureConfigured().auth.refreshToken(request)).pipe(\n tap((response) => this.storeTokens(response))\n );\n }\n\n /**\n * Verify a magic link token and sign in.\n * Automatically stores tokens on successful verification.\n *\n * @param request - Contains the magic link `token` from the email link\n * @returns Observable emitting SignInResponse with `user`, `accessToken`, optional `refreshToken`\n */\n verifyMagicLink(request: MagicLinkVerifyRequest): Observable<SignInResponse> {\n return from(this.ensureConfigured().auth.verifyMagicLink(request)).pipe(\n tap((response) => this.storeTokens(response))\n );\n }\n\n /**\n * Accept an invitation and create the user's account.\n * Automatically stores tokens on successful acceptance.\n *\n * @param request - Invitation token and user account details (password, etc.)\n * @returns Observable emitting SignInResponse with the new `user`, `accessToken`,\n * optional `refreshToken`\n */\n acceptInvitation(request: AcceptInvitationRequest): Observable<SignInResponse> {\n return from(this.ensureConfigured().auth.acceptInvitation(request)).pipe(\n tap((response) => this.storeTokens(response))\n );\n }\n\n /**\n * Sign in via Facebook OAuth.\n * Automatically stores tokens on successful authentication.\n *\n * @param request - Facebook OAuth access token\n * @returns Observable emitting SignInResponse with `user` and tokens\n */\n facebookLogin(request: OAuthSocialLoginRequest): Observable<SignInResponse> {\n return from(this.ensureConfigured().oauth.facebookLogin(request)).pipe(\n tap((response) => this.storeTokens(response))\n );\n }\n\n /**\n * Sign in via Google OAuth.\n * Automatically stores tokens on successful authentication.\n *\n * @param request - Google OAuth access token\n * @returns Observable emitting SignInResponse with `user` and tokens\n */\n googleLogin(request: OAuthSocialLoginRequest): Observable<SignInResponse> {\n return from(this.ensureConfigured().oauth.googleLogin(request)).pipe(\n tap((response) => this.storeTokens(response))\n );\n }\n\n /**\n * Sign in via tenant-specific login (white-label authentication).\n * Automatically stores tokens on successful authentication.\n *\n * @param request - Tenant login credentials and tenant identifier\n * @returns Observable emitting SignInResponse with `user` and tokens\n */\n tenantLogin(request: TenantLoginRequest): Observable<SignInResponse> {\n return from(this.ensureConfigured().oauth.tenantLogin(request)).pipe(\n tap((response) => this.storeTokens(response))\n );\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Token Management (only applicable with provideBlocks23)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Get the currently stored access token.\n * Only available in token mode (not cookie mode).\n *\n * @returns The access token string, or `null` if not set or in cookie mode\n */\n getAccessToken(): string | null {\n return this.tokenManager?.getAccessToken() ?? null;\n }\n\n /**\n * Get the currently stored refresh token.\n * Only available in token mode (not cookie mode).\n *\n * @returns The refresh token string, or `null` if not set or in cookie mode\n */\n getRefreshToken(): string | null {\n return this.tokenManager?.getRefreshToken() ?? null;\n }\n\n /**\n * Manually set access and refresh tokens.\n * Useful when tokens are obtained outside the normal auth flow\n * (e.g., from a server-side redirect or external OAuth callback).\n *\n * @param accessToken - The access token to store\n * @param refreshToken - Optional refresh token to store\n */\n setTokens(accessToken: string, refreshToken?: string): void {\n this.tokenManager?.setTokens(accessToken, refreshToken);\n }\n\n /**\n * Clear all stored tokens, effectively logging the user out locally.\n * Does NOT invalidate the session server-side — use `signOut()` for that.\n */\n clearTokens(): void {\n this.tokenManager?.clearTokens();\n }\n\n /**\n * Check if the user is currently authenticated based on token presence.\n *\n * @returns `true` if an access token is stored, `false` if not,\n * or `null` if token management is unavailable (cookie mode or no TokenManager)\n */\n isAuthenticated(): boolean | null {\n if (!this.tokenManager || this.simpleConfig?.authMode === 'cookie') {\n return null;\n }\n return !!this.tokenManager.getAccessToken();\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Delegated sub-services (Promise-based, auto-sync with block API)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /** Core auth operations (signIn, signUp, signOut, password reset, magic links, invitations). Promise-based. */\n get auth() { return this.ensureConfigured().auth; }\n /** User CRUD, listing, search, and profile management */\n get users() { return this.ensureConfigured().users; }\n /** Role listing and assignment */\n get roles() { return this.ensureConfigured().roles; }\n /** Permission management */\n get permissions() { return this.ensureConfigured().permissions; }\n /** API key creation and management */\n get apiKeys() { return this.ensureConfigured().apiKeys; }\n /** Multi-factor authentication setup and verification */\n get mfa() { return this.ensureConfigured().mfa; }\n /** OAuth provider management (Facebook, Google, tenant login) */\n get oauth() { return this.ensureConfigured().oauth; }\n /** User avatar upload and management */\n get avatars() { return this.ensureConfigured().avatars; }\n /** Tenant CRUD and configuration */\n get tenants() { return this.ensureConfigured().tenants; }\n /** Application registration and management */\n get apps() { return this.ensureConfigured().apps; }\n /** Block configuration management */\n get blocks() { return this.ensureConfigured().blocks; }\n /** Service endpoint management */\n get services() { return this.ensureConfigured().services; }\n /** Subscription model/plan definitions */\n get subscriptionModels() { return this.ensureConfigured().subscriptionModels; }\n /** User-level subscription management */\n get userSubscriptions() { return this.ensureConfigured().userSubscriptions; }\n /** Company-level subscription management */\n get companySubscriptions() { return this.ensureConfigured().companySubscriptions; }\n /** Country listing (read-only reference data) */\n get countries() { return this.ensureConfigured().countries; }\n /** State/province listing (read-only reference data) */\n get states() { return this.ensureConfigured().states; }\n /** County listing (read-only reference data) */\n get counties() { return this.ensureConfigured().counties; }\n /** City listing (read-only reference data) */\n get cities() { return this.ensureConfigured().cities; }\n /** Currency listing (read-only reference data) */\n get currencies() { return this.ensureConfigured().currencies; }\n /** Guest/anonymous user management */\n get guests() { return this.ensureConfigured().guests; }\n /** Magic link token management */\n get magicLinks() { return this.ensureConfigured().magicLinks; }\n /** Refresh token listing and revocation */\n get refreshTokens() { return this.ensureConfigured().refreshTokens; }\n /** User device registration and management */\n get userDevices() { return this.ensureConfigured().userDevices; }\n /** Tenant-user association management */\n get tenantUsers() { return this.ensureConfigured().tenantUsers; }\n /** Email template management (Mandrill/SendGrid) */\n get mailTemplates() { return this.ensureConfigured().mailTemplates; }\n /** JSON Web Key Set management */\n get jwks() { return this.ensureConfigured().jwks; }\n /** Admin RSA key management */\n get adminRsaKeys() { return this.ensureConfigured().adminRsaKeys; }\n /** OpenID Connect configuration */\n get oidc() { return this.ensureConfigured().oidc; }\n\n /** Direct access to the underlying AuthenticationBlock instance */\n get authenticationBlock(): AuthenticationBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createSearchBlock,\n type SearchBlock,\n type SearchBlockConfig,\n} from '@23blocks/block-search';\nimport { TRANSPORT, SEARCH_TRANSPORT, SEARCH_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Search block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * // Promise-based (recommended for modern Angular):\n * const result = await this.searchService.search.search(request);\n *\n * // Observable-based:\n * from(this.searchService.search.search(request)).subscribe(...)\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class SearchService {\n private readonly block: SearchBlock | null;\n\n constructor(\n @Optional() @Inject(SEARCH_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(SEARCH_CONFIG) config: SearchBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createSearchBlock(transport, config) : null;\n }\n\n private ensureConfigured(): SearchBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] SearchService is not configured. ' +\n \"Add 'urls.search' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get search() { return this.ensureConfigured().search; }\n get history() { return this.ensureConfigured().history; }\n get favorites() { return this.ensureConfigured().favorites; }\n get entities() { return this.ensureConfigured().entities; }\n get identities() { return this.ensureConfigured().identities; }\n get jarvis() { return this.ensureConfigured().jarvis; }\n\n /** Full block access */\n get searchBlock(): SearchBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createProductsBlock,\n type ProductsBlock,\n type ProductsBlockConfig,\n} from '@23blocks/block-products';\nimport { TRANSPORT, PRODUCTS_TRANSPORT, PRODUCTS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Products block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const products = await this.productsService.products.list();\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class ProductsService {\n private readonly block: ProductsBlock | null;\n\n constructor(\n @Optional() @Inject(PRODUCTS_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(PRODUCTS_CONFIG) config: ProductsBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createProductsBlock(transport, config) : null;\n }\n\n private ensureConfigured(): ProductsBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] ProductsService is not configured. ' +\n \"Add 'urls.products' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get products() { return this.ensureConfigured().products; }\n get cart() { return this.ensureConfigured().cart; }\n get cartDetails() { return this.ensureConfigured().cartDetails; }\n get categories() { return this.ensureConfigured().categories; }\n get brands() { return this.ensureConfigured().brands; }\n get vendors() { return this.ensureConfigured().vendors; }\n get warehouses() { return this.ensureConfigured().warehouses; }\n get channels() { return this.ensureConfigured().channels; }\n get collections() { return this.ensureConfigured().collections; }\n get productSets() { return this.ensureConfigured().productSets; }\n get shoppingLists() { return this.ensureConfigured().shoppingLists; }\n get promotions() { return this.ensureConfigured().promotions; }\n get prices() { return this.ensureConfigured().prices; }\n get filters() { return this.ensureConfigured().filters; }\n get images() { return this.ensureConfigured().images; }\n get variations() { return this.ensureConfigured().variations; }\n get reviews() { return this.ensureConfigured().reviews; }\n get variationReviews() { return this.ensureConfigured().variationReviews; }\n get stock() { return this.ensureConfigured().stock; }\n get suggestions() { return this.ensureConfigured().suggestions; }\n get addons() { return this.ensureConfigured().addons; }\n get myCarts() { return this.ensureConfigured().myCarts; }\n get remarketing() { return this.ensureConfigured().remarketing; }\n get visitors() { return this.ensureConfigured().visitors; }\n get productVendors() { return this.ensureConfigured().productVendors; }\n\n /** Full block access */\n get productsBlock(): ProductsBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createCrmBlock,\n type CrmBlock,\n type CrmBlockConfig,\n} from '@23blocks/block-crm';\nimport { TRANSPORT, CRM_TRANSPORT, CRM_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the CRM block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const accounts = await this.crmService.accounts.list({ page: 1, perPage: 20 });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class CrmService {\n private readonly block: CrmBlock | null;\n\n constructor(\n @Optional() @Inject(CRM_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(CRM_CONFIG) config: CrmBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createCrmBlock(transport, config) : null;\n }\n\n private ensureConfigured(): CrmBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] CrmService is not configured. ' +\n \"Add 'urls.crm' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get accounts() { return this.ensureConfigured().accounts; }\n get contacts() { return this.ensureConfigured().contacts; }\n get contactEvents() { return this.ensureConfigured().contactEvents; }\n get leads() { return this.ensureConfigured().leads; }\n get leadFollows() { return this.ensureConfigured().leadFollows; }\n get opportunities() { return this.ensureConfigured().opportunities; }\n get meetings() { return this.ensureConfigured().meetings; }\n get meetingParticipants() { return this.ensureConfigured().meetingParticipants; }\n get meetingBillings() { return this.ensureConfigured().meetingBillings; }\n get quotes() { return this.ensureConfigured().quotes; }\n get subscribers() { return this.ensureConfigured().subscribers; }\n get referrals() { return this.ensureConfigured().referrals; }\n get touches() { return this.ensureConfigured().touches; }\n get categories() { return this.ensureConfigured().categories; }\n get calendarAccounts() { return this.ensureConfigured().calendarAccounts; }\n get busyBlocks() { return this.ensureConfigured().busyBlocks; }\n get icsTokens() { return this.ensureConfigured().icsTokens; }\n get zoomMeetings() { return this.ensureConfigured().zoomMeetings; }\n get zoomHosts() { return this.ensureConfigured().zoomHosts; }\n get mailTemplates() { return this.ensureConfigured().mailTemplates; }\n get communications() { return this.ensureConfigured().communications; }\n get users() { return this.ensureConfigured().users; }\n get billingReports() { return this.ensureConfigured().billingReports; }\n get calendarSync() { return this.ensureConfigured().calendarSync; }\n\n /** Full block access */\n get crmBlock(): CrmBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createContentBlock,\n type ContentBlock,\n type ContentBlockConfig,\n} from '@23blocks/block-content';\nimport { TRANSPORT, CONTENT_TRANSPORT, CONTENT_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Content block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const posts = await this.contentService.posts.list({ page: 1, perPage: 10 });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class ContentService {\n private readonly block: ContentBlock | null;\n\n constructor(\n @Optional() @Inject(CONTENT_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(CONTENT_CONFIG) config: ContentBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createContentBlock(transport, config) : null;\n }\n\n private ensureConfigured(): ContentBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] ContentService is not configured. ' +\n \"Add 'urls.content' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get posts() { return this.ensureConfigured().posts; }\n get postVersions() { return this.ensureConfigured().postVersions; }\n get postTemplates() { return this.ensureConfigured().postTemplates; }\n get comments() { return this.ensureConfigured().comments; }\n get categories() { return this.ensureConfigured().categories; }\n get tags() { return this.ensureConfigured().tags; }\n get users() { return this.ensureConfigured().users; }\n get moderation() { return this.ensureConfigured().moderation; }\n get activity() { return this.ensureConfigured().activity; }\n get series() { return this.ensureConfigured().series; }\n\n /** Full block access */\n get contentBlock(): ContentBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createGeolocationBlock,\n type GeolocationBlock,\n type GeolocationBlockConfig,\n} from '@23blocks/block-geolocation';\nimport { TRANSPORT, GEOLOCATION_TRANSPORT, GEOLOCATION_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Geolocation block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const locations = await this.geolocationService.locations.list();\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class GeolocationService {\n private readonly block: GeolocationBlock | null;\n\n constructor(\n @Optional() @Inject(GEOLOCATION_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(GEOLOCATION_CONFIG) config: GeolocationBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createGeolocationBlock(transport, config) : null;\n }\n\n private ensureConfigured(): GeolocationBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] GeolocationService is not configured. ' +\n \"Add 'urls.geolocation' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get locations() { return this.ensureConfigured().locations; }\n get addresses() { return this.ensureConfigured().addresses; }\n get areas() { return this.ensureConfigured().areas; }\n get regions() { return this.ensureConfigured().regions; }\n get routes() { return this.ensureConfigured().routes; }\n get bookings() { return this.ensureConfigured().bookings; }\n get premises() { return this.ensureConfigured().premises; }\n get premiseEvents() { return this.ensureConfigured().premiseEvents; }\n get routeTracker() { return this.ensureConfigured().routeTracker; }\n get locationHours() { return this.ensureConfigured().locationHours; }\n get locationImages() { return this.ensureConfigured().locationImages; }\n get locationSlots() { return this.ensureConfigured().locationSlots; }\n get locationTaxes() { return this.ensureConfigured().locationTaxes; }\n get locationGroups() { return this.ensureConfigured().locationGroups; }\n get identities() { return this.ensureConfigured().identities; }\n get locationIdentities() { return this.ensureConfigured().locationIdentities; }\n get geoCountries() { return this.ensureConfigured().geoCountries; }\n get geoStates() { return this.ensureConfigured().geoStates; }\n get geoCities() { return this.ensureConfigured().geoCities; }\n\n /** Full block access */\n get geolocationBlock(): GeolocationBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createConversationsBlock,\n type ConversationsBlock,\n type ConversationsBlockConfig,\n} from '@23blocks/block-conversations';\nimport { TRANSPORT, CONVERSATIONS_TRANSPORT, CONVERSATIONS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Conversations block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const message = await this.conversationsService.messages.create({ contextId, content });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class ConversationsService {\n private readonly block: ConversationsBlock | null;\n\n constructor(\n @Optional() @Inject(CONVERSATIONS_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(CONVERSATIONS_CONFIG) config: ConversationsBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createConversationsBlock(transport, config) : null;\n }\n\n private ensureConfigured(): ConversationsBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] ConversationsService is not configured. ' +\n \"Add 'urls.conversations' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get messages() { return this.ensureConfigured().messages; }\n get draftMessages() { return this.ensureConfigured().draftMessages; }\n get groups() { return this.ensureConfigured().groups; }\n get groupInvites() { return this.ensureConfigured().groupInvites; }\n get notifications() { return this.ensureConfigured().notifications; }\n get conversations() { return this.ensureConfigured().conversations; }\n get websocketTokens() { return this.ensureConfigured().websocketTokens; }\n get contexts() { return this.ensureConfigured().contexts; }\n get notificationSettings() { return this.ensureConfigured().notificationSettings; }\n get availabilities() { return this.ensureConfigured().availabilities; }\n get messageFiles() { return this.ensureConfigured().messageFiles; }\n get sources() { return this.ensureConfigured().sources; }\n get users() { return this.ensureConfigured().users; }\n get meetings() { return this.ensureConfigured().meetings; }\n get webNotifications() { return this.ensureConfigured().webNotifications; }\n\n /** Full block access */\n get conversationsBlock(): ConversationsBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createFilesBlock,\n type FilesBlock,\n type FilesBlockConfig,\n} from '@23blocks/block-files';\nimport { TRANSPORT, FILES_TRANSPORT, FILES_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Files block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const files = await this.filesService.storageFiles.list();\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class FilesService {\n private readonly block: FilesBlock | null;\n\n constructor(\n @Optional() @Inject(FILES_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(FILES_CONFIG) config: FilesBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createFilesBlock(transport, config) : null;\n }\n\n private ensureConfigured(): FilesBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] FilesService is not configured. ' +\n \"Add 'urls.files' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get storageFiles() { return this.ensureConfigured().storageFiles; }\n get entityFiles() { return this.ensureConfigured().entityFiles; }\n get fileSchemas() { return this.ensureConfigured().fileSchemas; }\n get userFiles() { return this.ensureConfigured().userFiles; }\n get fileCategories() { return this.ensureConfigured().fileCategories; }\n get fileTags() { return this.ensureConfigured().fileTags; }\n get delegations() { return this.ensureConfigured().delegations; }\n get fileAccess() { return this.ensureConfigured().fileAccess; }\n get fileAccessRequests() { return this.ensureConfigured().fileAccessRequests; }\n\n /** Full block access */\n get filesBlock(): FilesBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createFormsBlock,\n type FormsBlock,\n type FormsBlockConfig,\n} from '@23blocks/block-forms';\nimport { TRANSPORT, FORMS_TRANSPORT, FORMS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Forms block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const forms = await this.formsService.forms.list();\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class FormsService {\n private readonly block: FormsBlock | null;\n\n constructor(\n @Optional() @Inject(FORMS_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(FORMS_CONFIG) config: FormsBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createFormsBlock(transport, config) : null;\n }\n\n private ensureConfigured(): FormsBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] FormsService is not configured. ' +\n \"Add 'urls.forms' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get forms() { return this.ensureConfigured().forms; }\n get schemas() { return this.ensureConfigured().schemas; }\n get schemaVersions() { return this.ensureConfigured().schemaVersions; }\n get instances() { return this.ensureConfigured().instances; }\n get sets() { return this.ensureConfigured().sets; }\n get landings() { return this.ensureConfigured().landings; }\n get subscriptions() { return this.ensureConfigured().subscriptions; }\n get appointments() { return this.ensureConfigured().appointments; }\n get surveys() { return this.ensureConfigured().surveys; }\n get referrals() { return this.ensureConfigured().referrals; }\n get mailTemplates() { return this.ensureConfigured().mailTemplates; }\n get applicationForms() { return this.ensureConfigured().applicationForms; }\n get crmSync() { return this.ensureConfigured().crmSync; }\n\n /** Full block access */\n get formsBlock(): FormsBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createAssetsBlock,\n type AssetsBlock,\n type AssetsBlockConfig,\n} from '@23blocks/block-assets';\nimport { TRANSPORT, ASSETS_TRANSPORT, ASSETS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Assets block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const assets = await this.assetsService.assets.list();\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class AssetsService {\n private readonly block: AssetsBlock | null;\n\n constructor(\n @Optional() @Inject(ASSETS_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(ASSETS_CONFIG) config: AssetsBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createAssetsBlock(transport, config) : null;\n }\n\n private ensureConfigured(): AssetsBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] AssetsService is not configured. ' +\n \"Add 'urls.assets' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get assets() { return this.ensureConfigured().assets; }\n get events() { return this.ensureConfigured().events; }\n get audits() { return this.ensureConfigured().audits; }\n get categories() { return this.ensureConfigured().categories; }\n get tags() { return this.ensureConfigured().tags; }\n get vendors() { return this.ensureConfigured().vendors; }\n get warehouses() { return this.ensureConfigured().warehouses; }\n get entities() { return this.ensureConfigured().entities; }\n get operations() { return this.ensureConfigured().operations; }\n get alerts() { return this.ensureConfigured().alerts; }\n get users() { return this.ensureConfigured().users; }\n get images() { return this.ensureConfigured().images; }\n\n /** Full block access */\n get assetsBlock(): AssetsBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createCampaignsBlock,\n type CampaignsBlock,\n type CampaignsBlockConfig,\n} from '@23blocks/block-campaigns';\nimport { TRANSPORT, CAMPAIGNS_TRANSPORT, CAMPAIGNS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Campaigns block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const campaigns = await this.campaignsService.campaigns.list({ page: 1, perPage: 10 });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class CampaignsService {\n private readonly block: CampaignsBlock | null;\n\n constructor(\n @Optional() @Inject(CAMPAIGNS_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(CAMPAIGNS_CONFIG) config: CampaignsBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createCampaignsBlock(transport, config) : null;\n }\n\n private ensureConfigured(): CampaignsBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] CampaignsService is not configured. ' +\n \"Add 'urls.campaigns' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get campaigns() { return this.ensureConfigured().campaigns; }\n get campaignMedia() { return this.ensureConfigured().campaignMedia; }\n get landingPages() { return this.ensureConfigured().landingPages; }\n get audiences() { return this.ensureConfigured().audiences; }\n get landingTemplates() { return this.ensureConfigured().landingTemplates; }\n get targets() { return this.ensureConfigured().targets; }\n get results() { return this.ensureConfigured().results; }\n get markets() { return this.ensureConfigured().markets; }\n get locations() { return this.ensureConfigured().locations; }\n get templates() { return this.ensureConfigured().templates; }\n get mediaResults() { return this.ensureConfigured().mediaResults; }\n get media() { return this.ensureConfigured().media; }\n\n /** Full block access */\n get campaignsBlock(): CampaignsBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createCompanyBlock,\n type CompanyBlock,\n type CompanyBlockConfig,\n} from '@23blocks/block-company';\nimport { TRANSPORT, COMPANY_TRANSPORT, COMPANY_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Company block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const companies = await this.companyService.companies.list();\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class CompanyService {\n private readonly block: CompanyBlock | null;\n\n constructor(\n @Optional() @Inject(COMPANY_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(COMPANY_CONFIG) config: CompanyBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createCompanyBlock(transport, config) : null;\n }\n\n private ensureConfigured(): CompanyBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] CompanyService is not configured. ' +\n \"Add 'urls.company' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get companies() { return this.ensureConfigured().companies; }\n get departments() { return this.ensureConfigured().departments; }\n get teams() { return this.ensureConfigured().teams; }\n get teamMembers() { return this.ensureConfigured().teamMembers; }\n get quarters() { return this.ensureConfigured().quarters; }\n get positions() { return this.ensureConfigured().positions; }\n get employeeAssignments() { return this.ensureConfigured().employeeAssignments; }\n\n /** Full block access */\n get companyBlock(): CompanyBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createRewardsBlock,\n type RewardsBlock,\n type RewardsBlockConfig,\n} from '@23blocks/block-rewards';\nimport { TRANSPORT, REWARDS_TRANSPORT, REWARDS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Rewards block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const rewards = await this.rewardsService.rewards.list({ status: 'active' });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class RewardsService {\n private readonly block: RewardsBlock | null;\n\n constructor(\n @Optional() @Inject(REWARDS_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(REWARDS_CONFIG) config: RewardsBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createRewardsBlock(transport, config) : null;\n }\n\n private ensureConfigured(): RewardsBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] RewardsService is not configured. ' +\n \"Add 'urls.rewards' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get rewards() { return this.ensureConfigured().rewards; }\n get coupons() { return this.ensureConfigured().coupons; }\n get loyalty() { return this.ensureConfigured().loyalty; }\n get badges() { return this.ensureConfigured().badges; }\n get couponConfigurations() { return this.ensureConfigured().couponConfigurations; }\n get offerCodes() { return this.ensureConfigured().offerCodes; }\n get expirationRules() { return this.ensureConfigured().expirationRules; }\n get customers() { return this.ensureConfigured().customers; }\n get badgeCategories() { return this.ensureConfigured().badgeCategories; }\n get moneyRules() { return this.ensureConfigured().moneyRules; }\n get productRules() { return this.ensureConfigured().productRules; }\n get eventRules() { return this.ensureConfigured().eventRules; }\n\n /** Full block access */\n get rewardsBlock(): RewardsBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createSalesBlock,\n type SalesBlock,\n type SalesBlockConfig,\n} from '@23blocks/block-sales';\nimport { TRANSPORT, SALES_TRANSPORT, SALES_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Sales block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const order = await this.salesService.orders.create({ ... });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class SalesService {\n private readonly block: SalesBlock | null;\n\n constructor(\n @Optional() @Inject(SALES_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(SALES_CONFIG) config: SalesBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createSalesBlock(transport, config) : null;\n }\n\n private ensureConfigured(): SalesBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] SalesService is not configured. ' +\n \"Add 'urls.sales' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get orders() { return this.ensureConfigured().orders; }\n get orderDetails() { return this.ensureConfigured().orderDetails; }\n get orderTaxes() { return this.ensureConfigured().orderTaxes; }\n get payments() { return this.ensureConfigured().payments; }\n get subscriptions() { return this.ensureConfigured().subscriptions; }\n get subscriptionModels() { return this.ensureConfigured().subscriptionModels; }\n get entities() { return this.ensureConfigured().entities; }\n get users() { return this.ensureConfigured().users; }\n get customers() { return this.ensureConfigured().customers; }\n get flexibleOrders() { return this.ensureConfigured().flexibleOrders; }\n get stripe() { return this.ensureConfigured().stripe; }\n get mercadopago() { return this.ensureConfigured().mercadopago; }\n get vendorPayments() { return this.ensureConfigured().vendorPayments; }\n\n /** Full block access */\n get salesBlock(): SalesBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createWalletBlock,\n type WalletBlock,\n type WalletBlockConfig,\n} from '@23blocks/block-wallet';\nimport { TRANSPORT, WALLET_TRANSPORT, WALLET_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Wallet block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const wallet = await this.walletService.wallets.create({ userUniqueId });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class WalletService {\n private readonly block: WalletBlock | null;\n\n constructor(\n @Optional() @Inject(WALLET_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(WALLET_CONFIG) config: WalletBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createWalletBlock(transport, config) : null;\n }\n\n private ensureConfigured(): WalletBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] WalletService is not configured. ' +\n \"Add 'urls.wallet' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get wallets() { return this.ensureConfigured().wallets; }\n get transactions() { return this.ensureConfigured().transactions; }\n get authorizationCodes() { return this.ensureConfigured().authorizationCodes; }\n get webhooks() { return this.ensureConfigured().webhooks; }\n\n /** Full block access */\n get walletBlock(): WalletBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createJarvisBlock,\n type JarvisBlock,\n type JarvisBlockConfig,\n} from '@23blocks/block-jarvis';\nimport { TRANSPORT, JARVIS_TRANSPORT, JARVIS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Jarvis block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const response = await this.jarvisService.agents.chat(agentId, { message });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class JarvisService {\n private readonly block: JarvisBlock | null;\n\n constructor(\n @Optional() @Inject(JARVIS_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(JARVIS_CONFIG) config: JarvisBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createJarvisBlock(transport, config) : null;\n }\n\n private ensureConfigured(): JarvisBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] JarvisService is not configured. ' +\n \"Add 'urls.jarvis' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get agents() { return this.ensureConfigured().agents; }\n get prompts() { return this.ensureConfigured().prompts; }\n get workflows() { return this.ensureConfigured().workflows; }\n get executions() { return this.ensureConfigured().executions; }\n get conversations() { return this.ensureConfigured().conversations; }\n get aiModels() { return this.ensureConfigured().aiModels; }\n get entities() { return this.ensureConfigured().entities; }\n get clusters() { return this.ensureConfigured().clusters; }\n get users() { return this.ensureConfigured().users; }\n get workflowParticipants() { return this.ensureConfigured().workflowParticipants; }\n get workflowSteps() { return this.ensureConfigured().workflowSteps; }\n get workflowInstances() { return this.ensureConfigured().workflowInstances; }\n get agentRuntime() { return this.ensureConfigured().agentRuntime; }\n get mailTemplates() { return this.ensureConfigured().mailTemplates; }\n get marvinChat() { return this.ensureConfigured().marvinChat; }\n get promptComments() { return this.ensureConfigured().promptComments; }\n get executionComments() { return this.ensureConfigured().executionComments; }\n\n /** Full block access */\n get jarvisBlock(): JarvisBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createOnboardingBlock,\n type OnboardingBlock,\n type OnboardingBlockConfig,\n} from '@23blocks/block-onboarding';\nimport { TRANSPORT, ONBOARDING_TRANSPORT, ONBOARDING_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Onboarding block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const onboarding = await this.onboardingService.onboardings.create({ code: 'user-onboarding', name: 'User Onboarding' });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class OnboardingService {\n private readonly block: OnboardingBlock | null;\n\n constructor(\n @Optional() @Inject(ONBOARDING_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(ONBOARDING_CONFIG) config: OnboardingBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createOnboardingBlock(transport, config) : null;\n }\n\n private ensureConfigured(): OnboardingBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] OnboardingService is not configured. ' +\n \"Add 'urls.onboarding' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get onboardings() { return this.ensureConfigured().onboardings; }\n get flows() { return this.ensureConfigured().flows; }\n get userJourneys() { return this.ensureConfigured().userJourneys; }\n get userIdentities() { return this.ensureConfigured().userIdentities; }\n get onboard() { return this.ensureConfigured().onboard; }\n get mailTemplates() { return this.ensureConfigured().mailTemplates; }\n get remarketing() { return this.ensureConfigured().remarketing; }\n\n /** Full block access */\n get onboardingBlock(): OnboardingBlock { return this.ensureConfigured(); }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n createUniversityBlock,\n type UniversityBlock,\n type UniversityBlockConfig,\n} from '@23blocks/block-university';\nimport { TRANSPORT, UNIVERSITY_TRANSPORT, UNIVERSITY_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the University block.\n *\n * Exposes block sub-services directly via typed getters.\n * All methods return Promises - use `from()` to convert to Observables if needed.\n *\n * @example\n * ```typescript\n * const courses = await this.universityService.courses.list({ page: 1, perPage: 10 });\n * ```\n */\n@Injectable({ providedIn: 'root' })\nexport class UniversityService {\n private readonly block: UniversityBlock | null;\n\n constructor(\n @Optional() @Inject(UNIVERSITY_TRANSPORT) serviceTransport: Transport | null,\n @Optional() @Inject(TRANSPORT) legacyTransport: Transport | null,\n @Inject(UNIVERSITY_CONFIG) config: UniversityBlockConfig\n ) {\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createUniversityBlock(transport, config) : null;\n }\n\n private ensureConfigured(): UniversityBlock {\n if (!this.block) {\n throw new Error(\n '[23blocks] UniversityService is not configured. ' +\n \"Add 'urls.university' to your provideBlocks23() configuration.\"\n );\n }\n return this.block;\n }\n\n get courses() { return this.ensureConfigured().courses; }\n get lessons() { return this.ensureConfigured().lessons; }\n get enrollments() { return this.ensureConfigured().enrollments; }\n get assignments() { return this.ensureConfigured().assignments; }\n get submissions() { return this.ensureConfigured().submissions; }\n get subjects() { return this.ensureConfigured().subjects; }\n get teachers() { return this.ensureConfigured().teachers; }\n get students() { return this.ensureConfigured().students; }\n get courseGroups() { return this.ensureConfigured().courseGroups; }\n get coachingSessions() { return this.ensureConfigured().coachingSessions; }\n get tests() { return this.ensureConfigured().tests; }\n get registrationTokens() { return this.ensureConfigured().registrationTokens; }\n get placements() { return this.ensureConfigured().placements; }\n get calendars() { return this.ensureConfigured().calendars; }\n get matches() { return this.ensureConfigured().matches; }\n get attendance() { return this.ensureConfigured().attendance; }\n get notes() { return this.ensureConfigured().notes; }\n\n /** Full block access */\n get universityBlock(): UniversityBlock { return this.ensureConfigured(); }\n}\n","// ─────────────────────────────────────────────────────────────────────────────\n// Main API (Recommended)\n// ─────────────────────────────────────────────────────────────────────────────\nexport {\n // Main exports\n provideBlocks23,\n getBlocks23Providers,\n type ProviderConfig,\n type ServiceUrls,\n type AuthMode,\n type StorageType,\n type TokenManagerService,\n TOKEN_MANAGER,\n PROVIDER_CONFIG,\n\n // Backward compatibility (deprecated)\n type Simple23BlocksConfig,\n SIMPLE_CONFIG,\n} from './simple-providers';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Advanced API (Custom transport)\n// ─────────────────────────────────────────────────────────────────────────────\n// Tokens\nexport {\n // Legacy shared transport (deprecated)\n TRANSPORT,\n // Per-service transport tokens\n AUTHENTICATION_TRANSPORT,\n SEARCH_TRANSPORT,\n PRODUCTS_TRANSPORT,\n CRM_TRANSPORT,\n CONTENT_TRANSPORT,\n GEOLOCATION_TRANSPORT,\n CONVERSATIONS_TRANSPORT,\n FILES_TRANSPORT,\n FORMS_TRANSPORT,\n ASSETS_TRANSPORT,\n CAMPAIGNS_TRANSPORT,\n COMPANY_TRANSPORT,\n REWARDS_TRANSPORT,\n SALES_TRANSPORT,\n WALLET_TRANSPORT,\n JARVIS_TRANSPORT,\n ONBOARDING_TRANSPORT,\n UNIVERSITY_TRANSPORT,\n // Config tokens\n AUTHENTICATION_CONFIG,\n SEARCH_CONFIG,\n PRODUCTS_CONFIG,\n CRM_CONFIG,\n CONTENT_CONFIG,\n GEOLOCATION_CONFIG,\n CONVERSATIONS_CONFIG,\n FILES_CONFIG,\n FORMS_CONFIG,\n ASSETS_CONFIG,\n CAMPAIGNS_CONFIG,\n COMPANY_CONFIG,\n REWARDS_CONFIG,\n SALES_CONFIG,\n WALLET_CONFIG,\n JARVIS_CONFIG,\n ONBOARDING_CONFIG,\n UNIVERSITY_CONFIG,\n} from './tokens';\n\n// Provider functions (advanced - requires custom transport)\nexport { provide23Blocks, get23BlocksProviders, type Provide23BlocksConfig } from './providers';\n\n// Services\nexport { AuthenticationService } from './authentication/index';\nexport { SearchService } from './search/index';\nexport { ProductsService } from './products/index';\nexport { CrmService } from './crm/index';\nexport { ContentService } from './content/index';\nexport { GeolocationService } from './geolocation/index';\nexport { ConversationsService } from './conversations/index';\nexport { FilesService } from './files/index';\nexport { FormsService } from './forms/index';\nexport { AssetsService } from './assets/index';\nexport { CampaignsService } from './campaigns/index';\nexport { CompanyService } from './company/index';\nexport { RewardsService } from './rewards/index';\nexport { SalesService } from './sales/index';\nexport { WalletService } from './wallet/index';\nexport { JarvisService } from './jarvis/index';\nexport { OnboardingService } from './onboarding/index';\nexport { UniversityService } from './university/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -458,50 +458,183 @@ declare class AuthenticationService {
|
|
|
458
458
|
private ensureConfigured;
|
|
459
459
|
private get isTokenMode();
|
|
460
460
|
private storeTokens;
|
|
461
|
+
/**
|
|
462
|
+
* Sign in with email and password.
|
|
463
|
+
* Returns an Observable that emits the sign-in response and automatically
|
|
464
|
+
* stores access/refresh tokens in token mode.
|
|
465
|
+
*
|
|
466
|
+
* @param request - Email and password credentials
|
|
467
|
+
* @returns Observable emitting SignInResponse with `user`, `accessToken`,
|
|
468
|
+
* optional `refreshToken`, `tokenType`, and `expiresIn`
|
|
469
|
+
* @example
|
|
470
|
+
* ```typescript
|
|
471
|
+
* this.authService.signIn({ email: 'user@example.com', password: 'secret' })
|
|
472
|
+
* .subscribe(({ user, accessToken }) => console.log('Signed in:', user.email));
|
|
473
|
+
* ```
|
|
474
|
+
*/
|
|
461
475
|
signIn(request: SignInRequest): Observable<SignInResponse>;
|
|
476
|
+
/**
|
|
477
|
+
* Sign up a new user.
|
|
478
|
+
* Returns an Observable that emits the sign-up response and automatically
|
|
479
|
+
* stores tokens if email confirmation is not required.
|
|
480
|
+
*
|
|
481
|
+
* @param request - User registration data (email, password, etc.)
|
|
482
|
+
* @returns Observable emitting SignUpResponse with `user`, optional `accessToken`
|
|
483
|
+
* (absent if email confirmation is required), and optional `message`
|
|
484
|
+
* @note If email confirmation is enabled, `accessToken` will be undefined until confirmed.
|
|
485
|
+
*/
|
|
462
486
|
signUp(request: SignUpRequest): Observable<SignUpResponse>;
|
|
487
|
+
/**
|
|
488
|
+
* Sign out the current user.
|
|
489
|
+
* Invalidates the session server-side and clears locally stored tokens in token mode.
|
|
490
|
+
*
|
|
491
|
+
* @returns Observable that completes on successful sign-out
|
|
492
|
+
*/
|
|
463
493
|
signOut(): Observable<void>;
|
|
494
|
+
/**
|
|
495
|
+
* Refresh the access token using a refresh token.
|
|
496
|
+
* Automatically stores the new token pair in token mode.
|
|
497
|
+
*
|
|
498
|
+
* @param request - Contains the `refreshToken` to exchange
|
|
499
|
+
* @returns Observable emitting RefreshTokenResponse with new `accessToken`,
|
|
500
|
+
* optional new `refreshToken`, `tokenType`, and `expiresIn`
|
|
501
|
+
*/
|
|
464
502
|
refreshToken(request: RefreshTokenRequest): Observable<RefreshTokenResponse>;
|
|
503
|
+
/**
|
|
504
|
+
* Verify a magic link token and sign in.
|
|
505
|
+
* Automatically stores tokens on successful verification.
|
|
506
|
+
*
|
|
507
|
+
* @param request - Contains the magic link `token` from the email link
|
|
508
|
+
* @returns Observable emitting SignInResponse with `user`, `accessToken`, optional `refreshToken`
|
|
509
|
+
*/
|
|
465
510
|
verifyMagicLink(request: MagicLinkVerifyRequest): Observable<SignInResponse>;
|
|
511
|
+
/**
|
|
512
|
+
* Accept an invitation and create the user's account.
|
|
513
|
+
* Automatically stores tokens on successful acceptance.
|
|
514
|
+
*
|
|
515
|
+
* @param request - Invitation token and user account details (password, etc.)
|
|
516
|
+
* @returns Observable emitting SignInResponse with the new `user`, `accessToken`,
|
|
517
|
+
* optional `refreshToken`
|
|
518
|
+
*/
|
|
466
519
|
acceptInvitation(request: AcceptInvitationRequest): Observable<SignInResponse>;
|
|
520
|
+
/**
|
|
521
|
+
* Sign in via Facebook OAuth.
|
|
522
|
+
* Automatically stores tokens on successful authentication.
|
|
523
|
+
*
|
|
524
|
+
* @param request - Facebook OAuth access token
|
|
525
|
+
* @returns Observable emitting SignInResponse with `user` and tokens
|
|
526
|
+
*/
|
|
467
527
|
facebookLogin(request: OAuthSocialLoginRequest): Observable<SignInResponse>;
|
|
528
|
+
/**
|
|
529
|
+
* Sign in via Google OAuth.
|
|
530
|
+
* Automatically stores tokens on successful authentication.
|
|
531
|
+
*
|
|
532
|
+
* @param request - Google OAuth access token
|
|
533
|
+
* @returns Observable emitting SignInResponse with `user` and tokens
|
|
534
|
+
*/
|
|
468
535
|
googleLogin(request: OAuthSocialLoginRequest): Observable<SignInResponse>;
|
|
536
|
+
/**
|
|
537
|
+
* Sign in via tenant-specific login (white-label authentication).
|
|
538
|
+
* Automatically stores tokens on successful authentication.
|
|
539
|
+
*
|
|
540
|
+
* @param request - Tenant login credentials and tenant identifier
|
|
541
|
+
* @returns Observable emitting SignInResponse with `user` and tokens
|
|
542
|
+
*/
|
|
469
543
|
tenantLogin(request: TenantLoginRequest): Observable<SignInResponse>;
|
|
544
|
+
/**
|
|
545
|
+
* Get the currently stored access token.
|
|
546
|
+
* Only available in token mode (not cookie mode).
|
|
547
|
+
*
|
|
548
|
+
* @returns The access token string, or `null` if not set or in cookie mode
|
|
549
|
+
*/
|
|
470
550
|
getAccessToken(): string | null;
|
|
551
|
+
/**
|
|
552
|
+
* Get the currently stored refresh token.
|
|
553
|
+
* Only available in token mode (not cookie mode).
|
|
554
|
+
*
|
|
555
|
+
* @returns The refresh token string, or `null` if not set or in cookie mode
|
|
556
|
+
*/
|
|
471
557
|
getRefreshToken(): string | null;
|
|
558
|
+
/**
|
|
559
|
+
* Manually set access and refresh tokens.
|
|
560
|
+
* Useful when tokens are obtained outside the normal auth flow
|
|
561
|
+
* (e.g., from a server-side redirect or external OAuth callback).
|
|
562
|
+
*
|
|
563
|
+
* @param accessToken - The access token to store
|
|
564
|
+
* @param refreshToken - Optional refresh token to store
|
|
565
|
+
*/
|
|
472
566
|
setTokens(accessToken: string, refreshToken?: string): void;
|
|
567
|
+
/**
|
|
568
|
+
* Clear all stored tokens, effectively logging the user out locally.
|
|
569
|
+
* Does NOT invalidate the session server-side — use `signOut()` for that.
|
|
570
|
+
*/
|
|
473
571
|
clearTokens(): void;
|
|
572
|
+
/**
|
|
573
|
+
* Check if the user is currently authenticated based on token presence.
|
|
574
|
+
*
|
|
575
|
+
* @returns `true` if an access token is stored, `false` if not,
|
|
576
|
+
* or `null` if token management is unavailable (cookie mode or no TokenManager)
|
|
577
|
+
*/
|
|
474
578
|
isAuthenticated(): boolean | null;
|
|
579
|
+
/** Core auth operations (signIn, signUp, signOut, password reset, magic links, invitations). Promise-based. */
|
|
475
580
|
get auth(): _23blocks_block_authentication.AuthService;
|
|
581
|
+
/** User CRUD, listing, search, and profile management */
|
|
476
582
|
get users(): _23blocks_block_authentication.UsersService;
|
|
583
|
+
/** Role listing and assignment */
|
|
477
584
|
get roles(): _23blocks_block_authentication.RolesService;
|
|
585
|
+
/** Permission management */
|
|
478
586
|
get permissions(): _23blocks_block_authentication.PermissionsService;
|
|
587
|
+
/** API key creation and management */
|
|
479
588
|
get apiKeys(): _23blocks_block_authentication.ApiKeysService;
|
|
589
|
+
/** Multi-factor authentication setup and verification */
|
|
480
590
|
get mfa(): _23blocks_block_authentication.MfaService;
|
|
591
|
+
/** OAuth provider management (Facebook, Google, tenant login) */
|
|
481
592
|
get oauth(): _23blocks_block_authentication.OAuthService;
|
|
593
|
+
/** User avatar upload and management */
|
|
482
594
|
get avatars(): _23blocks_block_authentication.AvatarsService;
|
|
595
|
+
/** Tenant CRUD and configuration */
|
|
483
596
|
get tenants(): _23blocks_block_authentication.TenantsService;
|
|
597
|
+
/** Application registration and management */
|
|
484
598
|
get apps(): _23blocks_block_authentication.AppsService;
|
|
599
|
+
/** Block configuration management */
|
|
485
600
|
get blocks(): _23blocks_block_authentication.BlocksService;
|
|
601
|
+
/** Service endpoint management */
|
|
486
602
|
get services(): _23blocks_block_authentication.ServicesRegistryService;
|
|
603
|
+
/** Subscription model/plan definitions */
|
|
487
604
|
get subscriptionModels(): _23blocks_block_authentication.SubscriptionModelsService;
|
|
605
|
+
/** User-level subscription management */
|
|
488
606
|
get userSubscriptions(): _23blocks_block_authentication.UserSubscriptionsService;
|
|
607
|
+
/** Company-level subscription management */
|
|
489
608
|
get companySubscriptions(): _23blocks_block_authentication.CompanySubscriptionsService;
|
|
609
|
+
/** Country listing (read-only reference data) */
|
|
490
610
|
get countries(): _23blocks_block_authentication.CountriesService;
|
|
611
|
+
/** State/province listing (read-only reference data) */
|
|
491
612
|
get states(): _23blocks_block_authentication.StatesService;
|
|
613
|
+
/** County listing (read-only reference data) */
|
|
492
614
|
get counties(): _23blocks_block_authentication.CountiesService;
|
|
615
|
+
/** City listing (read-only reference data) */
|
|
493
616
|
get cities(): _23blocks_block_authentication.CitiesService;
|
|
617
|
+
/** Currency listing (read-only reference data) */
|
|
494
618
|
get currencies(): _23blocks_block_authentication.CurrenciesService;
|
|
619
|
+
/** Guest/anonymous user management */
|
|
495
620
|
get guests(): _23blocks_block_authentication.GuestsService;
|
|
621
|
+
/** Magic link token management */
|
|
496
622
|
get magicLinks(): _23blocks_block_authentication.MagicLinksService;
|
|
623
|
+
/** Refresh token listing and revocation */
|
|
497
624
|
get refreshTokens(): _23blocks_block_authentication.RefreshTokensService;
|
|
625
|
+
/** User device registration and management */
|
|
498
626
|
get userDevices(): _23blocks_block_authentication.UserDevicesService;
|
|
627
|
+
/** Tenant-user association management */
|
|
499
628
|
get tenantUsers(): _23blocks_block_authentication.TenantUsersService;
|
|
629
|
+
/** Email template management (Mandrill/SendGrid) */
|
|
500
630
|
get mailTemplates(): _23blocks_block_authentication.MailTemplatesService;
|
|
631
|
+
/** JSON Web Key Set management */
|
|
501
632
|
get jwks(): _23blocks_block_authentication.JwksService;
|
|
633
|
+
/** Admin RSA key management */
|
|
502
634
|
get adminRsaKeys(): _23blocks_block_authentication.AdminRsaKeysService;
|
|
635
|
+
/** OpenID Connect configuration */
|
|
503
636
|
get oidc(): _23blocks_block_authentication.OidcService;
|
|
504
|
-
/**
|
|
637
|
+
/** Direct access to the underlying AuthenticationBlock instance */
|
|
505
638
|
get authenticationBlock(): AuthenticationBlock;
|
|
506
639
|
static ɵfac: i0.ɵɵFactoryDeclaration<AuthenticationService, [{ optional: true; }, { optional: true; }, null, { optional: true; }, { optional: true; }]>;
|
|
507
640
|
static ɵprov: i0.ɵɵInjectableDeclaration<AuthenticationService>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sources":["../src/lib/simple-providers.ts","../src/lib/tokens.ts","../src/lib/providers.ts","../src/lib/authentication/authentication.service.ts","../src/lib/search/search.service.ts","../src/lib/products/products.service.ts","../src/lib/crm/crm.service.ts","../src/lib/content/content.service.ts","../src/lib/geolocation/geolocation.service.ts","../src/lib/conversations/conversations.service.ts","../src/lib/files/files.service.ts","../src/lib/forms/forms.service.ts","../src/lib/assets/assets.service.ts","../src/lib/campaigns/campaigns.service.ts","../src/lib/company/company.service.ts","../src/lib/rewards/rewards.service.ts","../src/lib/sales/sales.service.ts","../src/lib/wallet/wallet.service.ts","../src/lib/jarvis/jarvis.service.ts","../src/lib/onboarding/onboarding.service.ts","../src/lib/university/university.service.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":["../src/lib/simple-providers.ts","../src/lib/tokens.ts","../src/lib/providers.ts","../src/lib/authentication/authentication.service.ts","../src/lib/search/search.service.ts","../src/lib/products/products.service.ts","../src/lib/crm/crm.service.ts","../src/lib/content/content.service.ts","../src/lib/geolocation/geolocation.service.ts","../src/lib/conversations/conversations.service.ts","../src/lib/files/files.service.ts","../src/lib/forms/forms.service.ts","../src/lib/assets/assets.service.ts","../src/lib/campaigns/campaigns.service.ts","../src/lib/company/company.service.ts","../src/lib/rewards/rewards.service.ts","../src/lib/sales/sales.service.ts","../src/lib/wallet/wallet.service.ts","../src/lib/jarvis/jarvis.service.ts","../src/lib/onboarding/onboarding.service.ts","../src/lib/university/university.service.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CA;;AAEG;;AAGH;;AAEG;AACG,KAAA,WAAA;AAEN;;;AAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCF;AAED;;AAEG;;AAED;;;;;;;;;;;;;;;;AAgBG;;AAGH;;AAEG;;AAGH;;AAEG;;AAGH;;;;AAIG;;AAGH;;;AAGG;;AAGH;;AAEG;;AAGH;;;AAGG;;AAEJ;AAED;;AAEG;AACH,cAAA,aAAA,EAAA,cAAA,CAAA,mBAAA;AAEA;;AAEG;AACH,cAAA,eAAA,EAAA,cAAA,CAAA,cAAA;AAEA;AACA,cAAA,aAAA,EAAA,cAAA,CAAA,cAAA;AAEA;;AAEG;;AAED;AACA;;;AAGA;;;AAGG;;AAEJ;AAmJD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CG;AACH,iBAAA,eAAA,SAAA,cAAA,GAAA,oBAAA;AAiGA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;AACH,iBAAA,oBAAA,SAAA,cAAA,GAAA,QAAA;AAgGA;AACM,KAAA,oBAAA,GAAA,cAAA;;AC1jBN;;;AAGG;AACH,cAAA,SAAA,EAAA,cAAA,CAAA,SAAA;AAEA;AACA,cAAA,wBAAA,EAAA,cAAA,CAAA,SAAA;AAEA;AACA,cAAA,gBAAA,EAAA,cAAA,CAAA,SAAA;AAEA;AACA,cAAA,kBAAA,EAAA,cAAA,CAAA,SAAA;AAEA;AACA,cAAA,aAAA,EAAA,cAAA,CAAA,SAAA;AAEA;AACA,cAAA,iBAAA,EAAA,cAAA,CAAA,SAAA;AAEA;AACA,cAAA,qBAAA,EAAA,cAAA,CAAA,SAAA;AAEA;AACA,cAAA,uBAAA,EAAA,cAAA,CAAA,SAAA;AAEA;AACA,cAAA,eAAA,EAAA,cAAA,CAAA,SAAA;AAEA;AACA,cAAA,eAAA,EAAA,cAAA,CAAA,SAAA;AAEA;AACA,cAAA,gBAAA,EAAA,cAAA,CAAA,SAAA;AAEA;AACA,cAAA,mBAAA,EAAA,cAAA,CAAA,SAAA;AAEA;AACA,cAAA,iBAAA,EAAA,cAAA,CAAA,SAAA;AAEA;AACA,cAAA,iBAAA,EAAA,cAAA,CAAA,SAAA;AAEA;AACA,cAAA,eAAA,EAAA,cAAA,CAAA,SAAA;AAEA;AACA,cAAA,gBAAA,EAAA,cAAA,CAAA,SAAA;AAEA;AACA,cAAA,gBAAA,EAAA,cAAA,CAAA,SAAA;AAEA;AACA,cAAA,oBAAA,EAAA,cAAA,CAAA,SAAA;AAEA;AACA,cAAA,oBAAA,EAAA,cAAA,CAAA,SAAA;AAMA;;AAEG;AACH,cAAA,qBAAA,EAAA,cAAA,CAAA,yBAAA;AAIA;;AAEG;AACH,cAAA,aAAA,EAAA,cAAA,CAAA,iBAAA;AAIA;;AAEG;AACH,cAAA,kBAAA,EAAA,cAAA,CAAA,sBAAA;AAIA;;AAEG;AACH,cAAA,cAAA,EAAA,cAAA,CAAA,kBAAA;AAIA;;AAEG;AACH,cAAA,UAAA,EAAA,cAAA,CAAA,cAAA;AAIA;;AAEG;AACH,cAAA,eAAA,EAAA,cAAA,CAAA,mBAAA;AAIA;;AAEG;AACH,cAAA,oBAAA,EAAA,cAAA,CAAA,wBAAA;AAIA;;AAEG;AACH,cAAA,YAAA,EAAA,cAAA,CAAA,gBAAA;AAIA;;AAEG;AACH,cAAA,aAAA,EAAA,cAAA,CAAA,iBAAA;AAIA;;AAEG;AACH,cAAA,YAAA,EAAA,cAAA,CAAA,gBAAA;AAIA;;AAEG;AACH,cAAA,YAAA,EAAA,cAAA,CAAA,gBAAA;AAIA;;AAEG;AACH,cAAA,gBAAA,EAAA,cAAA,CAAA,oBAAA;AAIA;;AAEG;AACH,cAAA,cAAA,EAAA,cAAA,CAAA,kBAAA;AAIA;;AAEG;AACH,cAAA,cAAA,EAAA,cAAA,CAAA,kBAAA;AAIA;;AAEG;AACH,cAAA,aAAA,EAAA,cAAA,CAAA,iBAAA;AAIA;;AAEG;AACH,cAAA,iBAAA,EAAA,cAAA,CAAA,qBAAA;AAIA;;AAEG;AACH,cAAA,iBAAA,EAAA,cAAA,CAAA,qBAAA;AAIA;;AAEG;AACH,cAAA,aAAA,EAAA,cAAA,CAAA,iBAAA;;ACxKA;;AAEG;;;;;;;;;;;;;;;;;;;;;AAqBF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;AACH,iBAAA,eAAA,SAAA,qBAAA,GAAA,oBAAA;AA+DA;;;;;;;;;;;;;;;;;;;AAmBG;AACH,iBAAA,oBAAA,SAAA,qBAAA,GAAA,QAAA;;AChKA;;;;;;;;;;;;;;;;;;AAkBG;AACH,cAAA,qBAAA;AAEE;AACA;AACA;;AAeA;;AAcA;AAaA;;;;;;;;;;;;;AAaG;;AAOH;;;;;;;;;AASG;;AAWH;;;;;AAKG;AACH,eAAA,UAAA;AAUA;;;;;;;AAOG;;AAOH;;;;;;AAMG;;AAOH;;;;;;;AAOG;;AAOH;;;;;;AAMG;;AAOH;;;;;;AAMG;;AAOH;;;;;;AAMG;;AAWH;;;;;AAKG;;AAKH;;;;;AAKG;;AAKH;;;;;;;AAOG;;AAKH;;;AAGG;AACH;AAIA;;;;;AAKG;;;AAaH,gBAAQ,8BAAA,CAAA,WAAA;;AAER,iBAAS,8BAAA,CAAA,YAAA;;AAET,iBAAS,8BAAA,CAAA,YAAA;;AAET,uBAAe,8BAAA,CAAA,kBAAA;;AAEf,mBAAW,8BAAA,CAAA,cAAA;;AAEX,eAAO,8BAAA,CAAA,UAAA;;AAEP,iBAAS,8BAAA,CAAA,YAAA;;AAET,mBAAW,8BAAA,CAAA,cAAA;;AAEX,mBAAW,8BAAA,CAAA,cAAA;;AAEX,gBAAQ,8BAAA,CAAA,WAAA;;AAER,kBAAU,8BAAA,CAAA,aAAA;;AAEV,oBAAY,8BAAA,CAAA,uBAAA;;AAEZ,8BAAsB,8BAAA,CAAA,yBAAA;;AAEtB,6BAAqB,8BAAA,CAAA,wBAAA;;AAErB,gCAAwB,8BAAA,CAAA,2BAAA;;AAExB,qBAAa,8BAAA,CAAA,gBAAA;;AAEb,kBAAU,8BAAA,CAAA,aAAA;;AAEV,oBAAY,8BAAA,CAAA,eAAA;;AAEZ,kBAAU,8BAAA,CAAA,aAAA;;AAEV,sBAAc,8BAAA,CAAA,iBAAA;;AAEd,kBAAU,8BAAA,CAAA,aAAA;;AAEV,sBAAc,8BAAA,CAAA,iBAAA;;AAEd,yBAAiB,8BAAA,CAAA,oBAAA;;AAEjB,uBAAe,8BAAA,CAAA,kBAAA;;AAEf,uBAAe,8BAAA,CAAA,kBAAA;;AAEf,yBAAiB,8BAAA,CAAA,oBAAA;;AAEjB,gBAAQ,8BAAA,CAAA,WAAA;;AAER,wBAAgB,8BAAA,CAAA,mBAAA;;AAEhB,gBAAQ,8BAAA,CAAA,WAAA;;;;;AAIT;;AC/UD;;;;;;;;;;;;;;AAcG;AACH,cAAA,aAAA;AAEE;AAGwC,kCAAA,SAAA,0BAAA,SAAA,iBAAA,iBAAA;AAQxC;AAUA,kBAAU,sBAAA,CAAA,aAAA;AACV,mBAAW,sBAAA,CAAA,oBAAA;AACX,qBAAa,sBAAA,CAAA,gBAAA;AACb,oBAAY,sBAAA,CAAA,eAAA;AACZ,sBAAc,sBAAA,CAAA,iBAAA;AACd,kBAAU,sBAAA,CAAA,mBAAA;;;;;AAIX;;AC/CD;;;;;;;;;;AAUG;AACH,cAAA,eAAA;AAEE;AAG0C,kCAAA,SAAA,0BAAA,SAAA,iBAAA,mBAAA;AAQ1C;AAUA,oBAAY,wBAAA,CAAA,eAAA;AACZ,gBAAQ,wBAAA,CAAA,WAAA;AACR,uBAAe,wBAAA,CAAA,kBAAA;AACf,sBAAc,wBAAA,CAAA,iBAAA;AACd,kBAAU,wBAAA,CAAA,aAAA;AACV,mBAAW,wBAAA,CAAA,cAAA;AACX,sBAAc,wBAAA,CAAA,iBAAA;AACd,oBAAY,wBAAA,CAAA,eAAA;AACZ,uBAAe,wBAAA,CAAA,kBAAA;AACf,uBAAe,wBAAA,CAAA,kBAAA;AACf,yBAAiB,wBAAA,CAAA,oBAAA;AACjB,sBAAc,wBAAA,CAAA,wBAAA;AACd,kBAAU,wBAAA,CAAA,oBAAA;AACV,mBAAW,wBAAA,CAAA,qBAAA;AACX,kBAAU,wBAAA,CAAA,oBAAA;AACV,sBAAc,wBAAA,CAAA,wBAAA;AACd,mBAAW,wBAAA,CAAA,qBAAA;AACX,4BAAoB,wBAAA,CAAA,8BAAA;AACpB,iBAAS,wBAAA,CAAA,YAAA;AACT,uBAAe,wBAAA,CAAA,yBAAA;AACf,kBAAU,wBAAA,CAAA,aAAA;AACV,mBAAW,wBAAA,CAAA,cAAA;AACX,uBAAe,wBAAA,CAAA,kBAAA;AACf,oBAAY,wBAAA,CAAA,eAAA;AACZ,0BAAkB,wBAAA,CAAA,qBAAA;;;;;AAInB;;AC9DD;;;;;;;;;;AAUG;AACH,cAAA,UAAA;AAEE;AAGqC,kCAAA,SAAA,0BAAA,SAAA,iBAAA,cAAA;AAQrC;AAUA,oBAAY,mBAAA,CAAA,eAAA;AACZ,oBAAY,mBAAA,CAAA,eAAA;AACZ,yBAAiB,mBAAA,CAAA,oBAAA;AACjB,iBAAS,mBAAA,CAAA,YAAA;AACT,uBAAe,mBAAA,CAAA,kBAAA;AACf,yBAAiB,mBAAA,CAAA,oBAAA;AACjB,oBAAY,mBAAA,CAAA,eAAA;AACZ,+BAAuB,mBAAA,CAAA,0BAAA;AACvB,2BAAmB,mBAAA,CAAA,sBAAA;AACnB,kBAAU,mBAAA,CAAA,aAAA;AACV,uBAAe,mBAAA,CAAA,kBAAA;AACf,qBAAa,mBAAA,CAAA,gBAAA;AACb,mBAAW,mBAAA,CAAA,cAAA;AACX,sBAAc,mBAAA,CAAA,iBAAA;AACd,4BAAoB,mBAAA,CAAA,uBAAA;AACpB,sBAAc,mBAAA,CAAA,iBAAA;AACd,qBAAa,mBAAA,CAAA,gBAAA;AACb,wBAAgB,mBAAA,CAAA,mBAAA;AAChB,qBAAa,mBAAA,CAAA,gBAAA;AACb,yBAAiB,mBAAA,CAAA,uBAAA;AACjB,0BAAkB,mBAAA,CAAA,qBAAA;AAClB,iBAAS,mBAAA,CAAA,eAAA;AACT,0BAAkB,mBAAA,CAAA,qBAAA;AAClB,wBAAgB,mBAAA,CAAA,mBAAA;;;;;AAIjB;;AC7DD;;;;;;;;;;AAUG;AACH,cAAA,cAAA;AAEE;AAGyC,kCAAA,SAAA,0BAAA,SAAA,iBAAA,kBAAA;AAQzC;AAUA,iBAAS,uBAAA,CAAA,YAAA;AACT,wBAAgB,uBAAA,CAAA,mBAAA;AAChB,yBAAiB,uBAAA,CAAA,oBAAA;AACjB,oBAAY,uBAAA,CAAA,eAAA;AACZ,sBAAc,uBAAA,CAAA,iBAAA;AACd,gBAAQ,uBAAA,CAAA,WAAA;AACR,iBAAS,uBAAA,CAAA,mBAAA;AACT,sBAAc,uBAAA,CAAA,iBAAA;AACd,oBAAY,uBAAA,CAAA,eAAA;AACZ,kBAAU,uBAAA,CAAA,aAAA;;;;;AAIX;;AC/CD;;;;;;;;;;AAUG;AACH,cAAA,kBAAA;AAEE;AAG6C,kCAAA,SAAA,0BAAA,SAAA,iBAAA,sBAAA;AAQ7C;AAUA,qBAAa,2BAAA,CAAA,gBAAA;AACb,qBAAa,2BAAA,CAAA,gBAAA;AACb,iBAAS,2BAAA,CAAA,YAAA;AACT,mBAAW,2BAAA,CAAA,cAAA;AACX,kBAAU,2BAAA,CAAA,mBAAA;AACV,oBAAY,2BAAA,CAAA,sBAAA;AACZ,oBAAY,2BAAA,CAAA,eAAA;AACZ,yBAAiB,2BAAA,CAAA,oBAAA;AACjB,wBAAgB,2BAAA,CAAA,mBAAA;AAChB,yBAAiB,2BAAA,CAAA,oBAAA;AACjB,0BAAkB,2BAAA,CAAA,qBAAA;AAClB,yBAAiB,2BAAA,CAAA,oBAAA;AACjB,yBAAiB,2BAAA,CAAA,oBAAA;AACjB,0BAAkB,2BAAA,CAAA,qBAAA;AAClB,sBAAc,2BAAA,CAAA,oBAAA;AACd,8BAAsB,2BAAA,CAAA,yBAAA;AACtB,wBAAgB,2BAAA,CAAA,mBAAA;AAChB,qBAAa,2BAAA,CAAA,gBAAA;AACb,qBAAa,2BAAA,CAAA,gBAAA;;;;;AAId;;ACxDD;;;;;;;;;;AAUG;AACH,cAAA,oBAAA;AAEE;AAG+C,kCAAA,SAAA,0BAAA,SAAA,iBAAA,wBAAA;AAQ/C;AAUA,oBAAY,6BAAA,CAAA,eAAA;AACZ,yBAAiB,6BAAA,CAAA,oBAAA;AACjB,kBAAU,6BAAA,CAAA,aAAA;AACV,wBAAgB,6BAAA,CAAA,mBAAA;AAChB,yBAAiB,6BAAA,CAAA,oBAAA;AACjB,yBAAiB,6BAAA,CAAA,oBAAA;AACjB,2BAAmB,6BAAA,CAAA,sBAAA;AACnB,oBAAY,6BAAA,CAAA,eAAA;AACZ,gCAAwB,6BAAA,CAAA,2BAAA;AACxB,0BAAkB,6BAAA,CAAA,qBAAA;AAClB,wBAAgB,6BAAA,CAAA,mBAAA;AAChB,mBAAW,6BAAA,CAAA,cAAA;AACX,iBAAS,6BAAA,CAAA,YAAA;AACT,oBAAY,6BAAA,CAAA,eAAA;AACZ,4BAAoB,6BAAA,CAAA,uBAAA;;;;;AAIrB;;ACpDD;;;;;;;;;;AAUG;AACH,cAAA,YAAA;AAEE;AAGuC,kCAAA,SAAA,0BAAA,SAAA,iBAAA,gBAAA;AAQvC;AAUA,wBAAgB,qBAAA,CAAA,mBAAA;AAChB,uBAAe,qBAAA,CAAA,kBAAA;AACf,uBAAe,qBAAA,CAAA,kBAAA;AACf,qBAAa,qBAAA,CAAA,gBAAA;AACb,0BAAkB,qBAAA,CAAA,qBAAA;AAClB,oBAAY,qBAAA,CAAA,eAAA;AACZ,uBAAe,qBAAA,CAAA,kBAAA;AACf,sBAAc,qBAAA,CAAA,iBAAA;AACd,8BAAsB,qBAAA,CAAA,yBAAA;;;;;AAIvB;;AC9CD;;;;;;;;;;AAUG;AACH,cAAA,YAAA;AAEE;AAGuC,kCAAA,SAAA,0BAAA,SAAA,iBAAA,gBAAA;AAQvC;AAUA,iBAAS,qBAAA,CAAA,YAAA;AACT,mBAAW,qBAAA,CAAA,kBAAA;AACX,0BAAkB,qBAAA,CAAA,yBAAA;AAClB,qBAAa,qBAAA,CAAA,oBAAA;AACb,gBAAQ,qBAAA,CAAA,eAAA;AACR,oBAAY,qBAAA,CAAA,eAAA;AACZ,yBAAiB,qBAAA,CAAA,oBAAA;AACjB,wBAAgB,qBAAA,CAAA,mBAAA;AAChB,mBAAW,qBAAA,CAAA,cAAA;AACX,qBAAa,qBAAA,CAAA,gBAAA;AACb,yBAAiB,qBAAA,CAAA,oBAAA;AACjB,4BAAoB,qBAAA,CAAA,uBAAA;AACpB,mBAAW,qBAAA,CAAA,cAAA;;;;;AAIZ;;AClDD;;;;;;;;;;AAUG;AACH,cAAA,aAAA;AAEE;AAGwC,kCAAA,SAAA,0BAAA,SAAA,iBAAA,iBAAA;AAQxC;AAUA,kBAAU,sBAAA,CAAA,aAAA;AACV,kBAAU,sBAAA,CAAA,kBAAA;AACV,kBAAU,sBAAA,CAAA,kBAAA;AACV,sBAAc,sBAAA,CAAA,iBAAA;AACd,gBAAQ,sBAAA,CAAA,WAAA;AACR,mBAAW,sBAAA,CAAA,cAAA;AACX,sBAAc,sBAAA,CAAA,iBAAA;AACd,oBAAY,sBAAA,CAAA,qBAAA;AACZ,sBAAc,sBAAA,CAAA,sBAAA;AACd,kBAAU,sBAAA,CAAA,aAAA;AACV,iBAAS,sBAAA,CAAA,kBAAA;AACT,kBAAU,sBAAA,CAAA,kBAAA;;;;;AAIX;;ACjDD;;;;;;;;;;AAUG;AACH,cAAA,gBAAA;AAEE;AAG2C,kCAAA,SAAA,0BAAA,SAAA,iBAAA,oBAAA;AAQ3C;AAUA,qBAAa,yBAAA,CAAA,gBAAA;AACb,yBAAiB,yBAAA,CAAA,oBAAA;AACjB,wBAAgB,yBAAA,CAAA,mBAAA;AAChB,qBAAa,yBAAA,CAAA,gBAAA;AACb,4BAAoB,yBAAA,CAAA,uBAAA;AACpB,mBAAW,yBAAA,CAAA,sBAAA;AACX,mBAAW,yBAAA,CAAA,sBAAA;AACX,mBAAW,yBAAA,CAAA,sBAAA;AACX,qBAAa,yBAAA,CAAA,wBAAA;AACb,qBAAa,yBAAA,CAAA,wBAAA;AACb,wBAAgB,yBAAA,CAAA,2BAAA;AAChB,iBAAS,yBAAA,CAAA,YAAA;;;;;AAIV;;ACjDD;;;;;;;;;;AAUG;AACH,cAAA,cAAA;AAEE;AAGyC,kCAAA,SAAA,0BAAA,SAAA,iBAAA,kBAAA;AAQzC;AAUA,qBAAa,uBAAA,CAAA,gBAAA;AACb,uBAAe,uBAAA,CAAA,kBAAA;AACf,iBAAS,uBAAA,CAAA,YAAA;AACT,uBAAe,uBAAA,CAAA,kBAAA;AACf,oBAAY,uBAAA,CAAA,eAAA;AACZ,qBAAa,uBAAA,CAAA,gBAAA;AACb,+BAAuB,uBAAA,CAAA,0BAAA;;;;;AAIxB;;AC5CD;;;;;;;;;;AAUG;AACH,cAAA,cAAA;AAEE;AAGyC,kCAAA,SAAA,0BAAA,SAAA,iBAAA,kBAAA;AAQzC;AAUA,mBAAW,uBAAA,CAAA,cAAA;AACX,mBAAW,uBAAA,CAAA,cAAA;AACX,mBAAW,uBAAA,CAAA,cAAA;AACX,kBAAU,uBAAA,CAAA,aAAA;AACV,gCAAwB,uBAAA,CAAA,2BAAA;AACxB,sBAAc,uBAAA,CAAA,iBAAA;AACd,2BAAmB,uBAAA,CAAA,sBAAA;AACnB,qBAAa,uBAAA,CAAA,uBAAA;AACb,2BAAmB,uBAAA,CAAA,sBAAA;AACnB,sBAAc,uBAAA,CAAA,iBAAA;AACd,wBAAgB,uBAAA,CAAA,mBAAA;AAChB,sBAAc,uBAAA,CAAA,iBAAA;;;;;AAIf;;ACjDD;;;;;;;;;;AAUG;AACH,cAAA,YAAA;AAEE;AAGuC,kCAAA,SAAA,0BAAA,SAAA,iBAAA,gBAAA;AAQvC;AAUA,kBAAU,qBAAA,CAAA,aAAA;AACV,wBAAgB,qBAAA,CAAA,mBAAA;AAChB,sBAAc,qBAAA,CAAA,iBAAA;AACd,oBAAY,qBAAA,CAAA,eAAA;AACZ,yBAAiB,qBAAA,CAAA,oBAAA;AACjB,8BAAsB,qBAAA,CAAA,yBAAA;AACtB,oBAAY,qBAAA,CAAA,oBAAA;AACZ,iBAAS,qBAAA,CAAA,iBAAA;AACT,qBAAa,qBAAA,CAAA,qBAAA;AACb,0BAAkB,qBAAA,CAAA,qBAAA;AAClB,kBAAU,qBAAA,CAAA,aAAA;AACV,uBAAe,qBAAA,CAAA,kBAAA;AACf,0BAAkB,qBAAA,CAAA,qBAAA;;;;;AAInB;;AClDD;;;;;;;;;;AAUG;AACH,cAAA,aAAA;AAEE;AAGwC,kCAAA,SAAA,0BAAA,SAAA,iBAAA,iBAAA;AAQxC;AAUA,mBAAW,sBAAA,CAAA,cAAA;AACX,wBAAgB,sBAAA,CAAA,mBAAA;AAChB,8BAAsB,sBAAA,CAAA,yBAAA;AACtB,oBAAY,sBAAA,CAAA,eAAA;;;;;AAIb;;ACzCD;;;;;;;;;;AAUG;AACH,cAAA,aAAA;AAEE;AAGwC,kCAAA,SAAA,0BAAA,SAAA,iBAAA,iBAAA;AAQxC;AAUA,kBAAU,sBAAA,CAAA,aAAA;AACV,mBAAW,sBAAA,CAAA,cAAA;AACX,qBAAa,sBAAA,CAAA,gBAAA;AACb,sBAAc,sBAAA,CAAA,iBAAA;AACd,yBAAiB,sBAAA,CAAA,oBAAA;AACjB,oBAAY,sBAAA,CAAA,eAAA;AACZ,oBAAY,sBAAA,CAAA,eAAA;AACZ,oBAAY,sBAAA,CAAA,eAAA;AACZ,iBAAS,sBAAA,CAAA,kBAAA;AACT,gCAAwB,sBAAA,CAAA,2BAAA;AACxB,yBAAiB,sBAAA,CAAA,oBAAA;AACjB,6BAAqB,sBAAA,CAAA,wBAAA;AACrB,wBAAgB,sBAAA,CAAA,mBAAA;AAChB,yBAAiB,sBAAA,CAAA,oBAAA;AACjB,sBAAc,sBAAA,CAAA,iBAAA;AACd,0BAAkB,sBAAA,CAAA,qBAAA;AAClB,6BAAqB,sBAAA,CAAA,wBAAA;;;;;AAItB;;ACtDD;;;;;;;;;;AAUG;AACH,cAAA,iBAAA;AAEE;AAG4C,kCAAA,SAAA,0BAAA,SAAA,iBAAA,qBAAA;AAQ5C;AAUA,uBAAe,0BAAA,CAAA,kBAAA;AACf,iBAAS,0BAAA,CAAA,YAAA;AACT,wBAAgB,0BAAA,CAAA,mBAAA;AAChB,0BAAkB,0BAAA,CAAA,qBAAA;AAClB,mBAAW,0BAAA,CAAA,cAAA;AACX,yBAAiB,0BAAA,CAAA,oBAAA;AACjB,uBAAe,0BAAA,CAAA,kBAAA;;;;;AAIhB;;AC5CD;;;;;;;;;;AAUG;AACH,cAAA,iBAAA;AAEE;AAG4C,kCAAA,SAAA,0BAAA,SAAA,iBAAA,qBAAA;AAQ5C;AAUA,mBAAW,0BAAA,CAAA,cAAA;AACX,mBAAW,0BAAA,CAAA,cAAA;AACX,uBAAe,0BAAA,CAAA,kBAAA;AACf,uBAAe,0BAAA,CAAA,kBAAA;AACf,uBAAe,0BAAA,CAAA,kBAAA;AACf,oBAAY,0BAAA,CAAA,eAAA;AACZ,oBAAY,0BAAA,CAAA,eAAA;AACZ,oBAAY,0BAAA,CAAA,eAAA;AACZ,wBAAgB,0BAAA,CAAA,mBAAA;AAChB,4BAAoB,0BAAA,CAAA,uBAAA;AACpB,iBAAS,0BAAA,CAAA,mBAAA;AACT,8BAAsB,0BAAA,CAAA,yBAAA;AACtB,sBAAc,0BAAA,CAAA,iBAAA;AACd,qBAAa,0BAAA,CAAA,gBAAA;AACb,mBAAW,0BAAA,CAAA,cAAA;AACX,sBAAc,0BAAA,CAAA,iBAAA;AACd,iBAAS,0BAAA,CAAA,YAAA;;;;;AAIV;;;;"}
|
package/package.json
CHANGED