@23blocks/angular 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/lib/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
2
|
-
//
|
|
2
|
+
// Main API (Recommended)
|
|
3
3
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
4
|
-
export {
|
|
4
|
+
export { // Main exports
|
|
5
|
+
provideBlocks23, getBlocks23Providers, TOKEN_MANAGER, PROVIDER_CONFIG, SIMPLE_CONFIG } from './simple-providers.js';
|
|
5
6
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
6
7
|
// Advanced API (Custom transport)
|
|
7
8
|
// ─────────────────────────────────────────────────────────────────────────────
|
package/dist/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/index.ts"],"sourcesContent":["// ─────────────────────────────────────────────────────────────────────────────\n//
|
|
1
|
+
{"version":3,"sources":["../../src/lib/index.ts"],"sourcesContent":["// ─────────────────────────────────────────────────────────────────────────────\n// Main API (Recommended)\n// ─────────────────────────────────────────────────────────────────────────────\nexport {\n // Main exports\n provideBlocks23,\n getBlocks23Providers,\n type ProviderConfig,\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.js';\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Advanced API (Custom transport)\n// ─────────────────────────────────────────────────────────────────────────────\n// Tokens\nexport {\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.js';\n\n// Provider functions (advanced - requires custom transport)\nexport { provide23Blocks, get23BlocksProviders, type Provide23BlocksConfig } from './providers.js';\n\n// Services\nexport { AuthenticationService } from './authentication/index.js';\nexport { SearchService } from './search/index.js';\nexport { ProductsService } from './products/index.js';\nexport { CrmService } from './crm/index.js';\nexport { ContentService } from './content/index.js';\nexport { GeolocationService } from './geolocation/index.js';\nexport { ConversationsService } from './conversations/index.js';\nexport { FilesService } from './files/index.js';\nexport { FormsService } from './forms/index.js';\nexport { AssetsService } from './assets/index.js';\nexport { CampaignsService } from './campaigns/index.js';\nexport { CompanyService } from './company/index.js';\nexport { RewardsService } from './rewards/index.js';\nexport { SalesService } from './sales/index.js';\nexport { WalletService } from './wallet/index.js';\nexport { JarvisService } from './jarvis/index.js';\nexport { OnboardingService } from './onboarding/index.js';\nexport { UniversityService } from './university/index.js';\n"],"names":["provideBlocks23","getBlocks23Providers","TOKEN_MANAGER","PROVIDER_CONFIG","SIMPLE_CONFIG","TRANSPORT","AUTHENTICATION_CONFIG","SEARCH_CONFIG","PRODUCTS_CONFIG","CRM_CONFIG","CONTENT_CONFIG","GEOLOCATION_CONFIG","CONVERSATIONS_CONFIG","FILES_CONFIG","FORMS_CONFIG","ASSETS_CONFIG","CAMPAIGNS_CONFIG","COMPANY_CONFIG","REWARDS_CONFIG","SALES_CONFIG","WALLET_CONFIG","JARVIS_CONFIG","ONBOARDING_CONFIG","UNIVERSITY_CONFIG","provide23Blocks","get23BlocksProviders","AuthenticationService","SearchService","ProductsService","CrmService","ContentService","GeolocationService","ConversationsService","FilesService","FormsService","AssetsService","CampaignsService","CompanyService","RewardsService","SalesService","WalletService","JarvisService","OnboardingService","UniversityService"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAChF,SACE,eAAe;AACfA,eAAe,EACfC,oBAAoB,EAKpBC,aAAa,EACbC,eAAe,EAIfC,aAAa,QACR,wBAAwB;AAE/B,gFAAgF;AAChF,kCAAkC;AAClC,gFAAgF;AAChF,SAAS;AACT,SACEC,SAAS,EACTC,qBAAqB,EACrBC,aAAa,EACbC,eAAe,EACfC,UAAU,EACVC,cAAc,EACdC,kBAAkB,EAClBC,oBAAoB,EACpBC,YAAY,EACZC,YAAY,EACZC,aAAa,EACbC,gBAAgB,EAChBC,cAAc,EACdC,cAAc,EACdC,YAAY,EACZC,aAAa,EACbC,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,QACZ,cAAc;AAErB,4DAA4D;AAC5D,SAASC,eAAe,EAAEC,oBAAoB,QAAoC,iBAAiB;AAEnG,WAAW;AACX,SAASC,qBAAqB,QAAQ,4BAA4B;AAClE,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,eAAe,QAAQ,sBAAsB;AACtD,SAASC,UAAU,QAAQ,iBAAiB;AAC5C,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,kBAAkB,QAAQ,yBAAyB;AAC5D,SAASC,oBAAoB,QAAQ,2BAA2B;AAChE,SAASC,YAAY,QAAQ,mBAAmB;AAChD,SAASC,YAAY,QAAQ,mBAAmB;AAChD,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,gBAAgB,QAAQ,uBAAuB;AACxD,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,YAAY,QAAQ,mBAAmB;AAChD,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,iBAAiB,QAAQ,wBAAwB;AAC1D,SAASC,iBAAiB,QAAQ,wBAAwB"}
|
|
@@ -6,8 +6,9 @@ import { TRANSPORT, AUTHENTICATION_CONFIG, SEARCH_CONFIG, PRODUCTS_CONFIG, CRM_C
|
|
|
6
6
|
* Injection token for the token manager (internal use)
|
|
7
7
|
*/ export const TOKEN_MANAGER = new InjectionToken('23blocks.token-manager');
|
|
8
8
|
/**
|
|
9
|
-
* Injection token for
|
|
10
|
-
*/ export const
|
|
9
|
+
* Injection token for provider config
|
|
10
|
+
*/ export const PROVIDER_CONFIG = new InjectionToken('23blocks.provider-config');
|
|
11
|
+
/** @deprecated Use PROVIDER_CONFIG instead */ export const SIMPLE_CONFIG = PROVIDER_CONFIG;
|
|
11
12
|
/**
|
|
12
13
|
* Generate storage key scoped to app and tenant
|
|
13
14
|
*/ function getStorageKey(type, appId, tenantId) {
|
|
@@ -173,7 +174,7 @@ import { TRANSPORT, AUTHENTICATION_CONFIG, SEARCH_CONFIG, PRODUCTS_CONFIG, CRM_C
|
|
|
173
174
|
const providers = [
|
|
174
175
|
// Store config for injection
|
|
175
176
|
{
|
|
176
|
-
provide:
|
|
177
|
+
provide: PROVIDER_CONFIG,
|
|
177
178
|
useValue: config
|
|
178
179
|
},
|
|
179
180
|
// Token manager factory - creates singleton within the injector
|
|
@@ -299,7 +300,7 @@ import { TRANSPORT, AUTHENTICATION_CONFIG, SEARCH_CONFIG, PRODUCTS_CONFIG, CRM_C
|
|
|
299
300
|
return [
|
|
300
301
|
// Store config for injection
|
|
301
302
|
{
|
|
302
|
-
provide:
|
|
303
|
+
provide: PROVIDER_CONFIG,
|
|
303
304
|
useValue: config
|
|
304
305
|
},
|
|
305
306
|
// Token manager factory - creates singleton within the injector
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/simple-providers.ts"],"sourcesContent":["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 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.js';\n\n/**\n * Authentication mode for the simplified API\n */\nexport type AuthMode = 'token' | 'cookie';\n\n/**\n * Storage type for token mode\n */\nexport type StorageType = 'localStorage' | 'sessionStorage' | 'memory';\n\n/**\n * Simplified configuration for providing 23blocks services\n */\nexport interface Simple23BlocksConfig {\n /**\n * Base URL for the 23blocks API\n * @example 'https://api.yourapp.com'\n */\n baseUrl: string;\n\n /**\n * Application ID\n */\n appId: 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 simple config\n */\nexport const SIMPLE_CONFIG = new InjectionToken<Simple23BlocksConfig>('23blocks.simple-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 app and tenant\n */\nfunction getStorageKey(type: 'access' | 'refresh', appId: string, tenantId?: string): string {\n const scope = tenantId ? `${appId}_${tenantId}` : appId;\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 appId: 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', appId, tenantId);\n const refreshTokenKey = getStorageKey('refresh', appId, 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\n */\nfunction createTransportWithAuth(config: Simple23BlocksConfig, tokenManager: TokenManagerService): Transport {\n return createHttpTransport({\n baseUrl: config.baseUrl,\n timeout: config.timeout,\n credentials: config.authMode === 'cookie' ? 'include' : undefined,\n headers: () => {\n const headers: Record<string, string> = {\n ...config.headers,\n appid: config.appId,\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 * @example Token mode (default)\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 * baseUrl: 'https://api.yourapp.com',\n * appId: 'your-app-id',\n * }),\n * ],\n * };\n * ```\n *\n * @example Cookie mode (recommended for security)\n * ```typescript\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideBlocks23({\n * baseUrl: 'https://api.yourapp.com',\n * appId: 'your-app-id',\n * authMode: 'cookie',\n * }),\n * ],\n * };\n * ```\n */\nexport function provideBlocks23(config: Simple23BlocksConfig): EnvironmentProviders {\n // Block config for all services\n const blockConfig = { appId: config.appId, tenantId: config.tenantId };\n\n const providers: Provider[] = [\n // Store config for injection\n { provide: SIMPLE_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.appId, storage, config.tenantId);\n },\n },\n\n // Transport factory - depends on token manager\n {\n provide: TRANSPORT,\n useFactory: (tokenManager: TokenManagerService) => {\n return createTransportWithAuth(config, tokenManager);\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 * @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 * baseUrl: 'https://api.yourapp.com',\n * appId: 'your-app-id',\n * }),\n * ],\n * })\n * export class AppModule {}\n * ```\n */\nexport function getBlocks23Providers(config: Simple23BlocksConfig): Provider[] {\n // Block config for all services\n const blockConfig = { appId: config.appId, tenantId: config.tenantId };\n\n return [\n // Store config for injection\n { provide: SIMPLE_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.appId, storage, config.tenantId);\n },\n },\n\n // Transport factory - depends on token manager\n {\n provide: TRANSPORT,\n useFactory: (tokenManager: TokenManagerService) => {\n return createTransportWithAuth(config, tokenManager);\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"],"names":["InjectionToken","makeEnvironmentProviders","createHttpTransport","TRANSPORT","AUTHENTICATION_CONFIG","SEARCH_CONFIG","PRODUCTS_CONFIG","CRM_CONFIG","CONTENT_CONFIG","GEOLOCATION_CONFIG","CONVERSATIONS_CONFIG","FILES_CONFIG","FORMS_CONFIG","ASSETS_CONFIG","CAMPAIGNS_CONFIG","COMPANY_CONFIG","REWARDS_CONFIG","SALES_CONFIG","WALLET_CONFIG","JARVIS_CONFIG","ONBOARDING_CONFIG","UNIVERSITY_CONFIG","TOKEN_MANAGER","SIMPLE_CONFIG","getStorageKey","type","appId","tenantId","scope","MemoryStorage","getItem","key","data","get","setItem","value","set","removeItem","delete","Map","createTokenManager","storageType","isBrowser","window","localStorage","accessTokenKey","refreshTokenKey","storage","sessionStorage","getAccessToken","getRefreshToken","setTokens","accessToken","refreshToken","console","warn","clearTokens","onStorageChange","callback","handler","event","addEventListener","removeEventListener","createTransportWithAuth","config","tokenManager","baseUrl","timeout","credentials","authMode","undefined","headers","appid","token","provideBlocks23","blockConfig","providers","provide","useValue","useFactory","deps","getBlocks23Providers"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/lib/simple-providers.ts"],"sourcesContent":["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 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.js';\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 * Configuration for providing 23blocks services\n */\nexport interface ProviderConfig {\n /**\n * Base URL for the 23blocks API\n * @example 'https://api.yourapp.com'\n */\n baseUrl: string;\n\n /**\n * Application ID\n */\n appId: 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 app and tenant\n */\nfunction getStorageKey(type: 'access' | 'refresh', appId: string, tenantId?: string): string {\n const scope = tenantId ? `${appId}_${tenantId}` : appId;\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 appId: 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', appId, tenantId);\n const refreshTokenKey = getStorageKey('refresh', appId, 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\n */\nfunction createTransportWithAuth(config: ProviderConfig, tokenManager: TokenManagerService): Transport {\n return createHttpTransport({\n baseUrl: config.baseUrl,\n timeout: config.timeout,\n credentials: config.authMode === 'cookie' ? 'include' : undefined,\n headers: () => {\n const headers: Record<string, string> = {\n ...config.headers,\n appid: config.appId,\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 * @example Token mode (default)\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 * baseUrl: 'https://api.yourapp.com',\n * appId: 'your-app-id',\n * }),\n * ],\n * };\n * ```\n *\n * @example Cookie mode (recommended for security)\n * ```typescript\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideBlocks23({\n * baseUrl: 'https://api.yourapp.com',\n * appId: 'your-app-id',\n * authMode: 'cookie',\n * }),\n * ],\n * };\n * ```\n */\nexport function provideBlocks23(config: ProviderConfig): EnvironmentProviders {\n // Block config for all services\n const blockConfig = { appId: config.appId, tenantId: config.tenantId };\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.appId, storage, config.tenantId);\n },\n },\n\n // Transport factory - depends on token manager\n {\n provide: TRANSPORT,\n useFactory: (tokenManager: TokenManagerService) => {\n return createTransportWithAuth(config, tokenManager);\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 * @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 * baseUrl: 'https://api.yourapp.com',\n * appId: 'your-app-id',\n * }),\n * ],\n * })\n * export class AppModule {}\n * ```\n */\nexport function getBlocks23Providers(config: ProviderConfig): Provider[] {\n // Block config for all services\n const blockConfig = { appId: config.appId, tenantId: config.tenantId };\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.appId, storage, config.tenantId);\n },\n },\n\n // Transport factory - depends on token manager\n {\n provide: TRANSPORT,\n useFactory: (tokenManager: TokenManagerService) => {\n return createTransportWithAuth(config, tokenManager);\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"],"names":["InjectionToken","makeEnvironmentProviders","createHttpTransport","TRANSPORT","AUTHENTICATION_CONFIG","SEARCH_CONFIG","PRODUCTS_CONFIG","CRM_CONFIG","CONTENT_CONFIG","GEOLOCATION_CONFIG","CONVERSATIONS_CONFIG","FILES_CONFIG","FORMS_CONFIG","ASSETS_CONFIG","CAMPAIGNS_CONFIG","COMPANY_CONFIG","REWARDS_CONFIG","SALES_CONFIG","WALLET_CONFIG","JARVIS_CONFIG","ONBOARDING_CONFIG","UNIVERSITY_CONFIG","TOKEN_MANAGER","PROVIDER_CONFIG","SIMPLE_CONFIG","getStorageKey","type","appId","tenantId","scope","MemoryStorage","getItem","key","data","get","setItem","value","set","removeItem","delete","Map","createTokenManager","storageType","isBrowser","window","localStorage","accessTokenKey","refreshTokenKey","storage","sessionStorage","getAccessToken","getRefreshToken","setTokens","accessToken","refreshToken","console","warn","clearTokens","onStorageChange","callback","handler","event","addEventListener","removeEventListener","createTransportWithAuth","config","tokenManager","baseUrl","timeout","credentials","authMode","undefined","headers","appid","token","provideBlocks23","blockConfig","providers","provide","useValue","useFactory","deps","getBlocks23Providers"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
package/package.json
CHANGED