@23blocks/angular 6.5.15 → 6.5.17

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.
Files changed (88) hide show
  1. package/dist/README.md +792 -0
  2. package/dist/{index.esm.js → fesm2022/23blocks-angular.mjs} +1620 -1286
  3. package/dist/fesm2022/23blocks-angular.mjs.map +1 -0
  4. package/dist/index.d.ts +3874 -1
  5. package/dist/index.d.ts.map +1 -0
  6. package/package.json +18 -19
  7. package/dist/src/index.d.ts +0 -2
  8. package/dist/src/index.d.ts.map +0 -1
  9. package/dist/src/lib/assets/assets.service.d.ts +0 -123
  10. package/dist/src/lib/assets/assets.service.d.ts.map +0 -1
  11. package/dist/src/lib/assets/index.d.ts +0 -2
  12. package/dist/src/lib/assets/index.d.ts.map +0 -1
  13. package/dist/src/lib/authentication/authentication.service.d.ts +0 -684
  14. package/dist/src/lib/authentication/authentication.service.d.ts.map +0 -1
  15. package/dist/src/lib/authentication/index.d.ts +0 -2
  16. package/dist/src/lib/authentication/index.d.ts.map +0 -1
  17. package/dist/src/lib/campaigns/campaigns.service.d.ts +0 -111
  18. package/dist/src/lib/campaigns/campaigns.service.d.ts.map +0 -1
  19. package/dist/src/lib/campaigns/index.d.ts +0 -2
  20. package/dist/src/lib/campaigns/index.d.ts.map +0 -1
  21. package/dist/src/lib/company/company.service.d.ts +0 -117
  22. package/dist/src/lib/company/company.service.d.ts.map +0 -1
  23. package/dist/src/lib/company/index.d.ts +0 -2
  24. package/dist/src/lib/company/index.d.ts.map +0 -1
  25. package/dist/src/lib/content/content.service.d.ts +0 -177
  26. package/dist/src/lib/content/content.service.d.ts.map +0 -1
  27. package/dist/src/lib/content/index.d.ts +0 -2
  28. package/dist/src/lib/content/index.d.ts.map +0 -1
  29. package/dist/src/lib/conversations/conversations.service.d.ts +0 -130
  30. package/dist/src/lib/conversations/conversations.service.d.ts.map +0 -1
  31. package/dist/src/lib/conversations/index.d.ts +0 -2
  32. package/dist/src/lib/conversations/index.d.ts.map +0 -1
  33. package/dist/src/lib/crm/crm.service.d.ts +0 -182
  34. package/dist/src/lib/crm/crm.service.d.ts.map +0 -1
  35. package/dist/src/lib/crm/index.d.ts +0 -2
  36. package/dist/src/lib/crm/index.d.ts.map +0 -1
  37. package/dist/src/lib/files/files.service.d.ts +0 -326
  38. package/dist/src/lib/files/files.service.d.ts.map +0 -1
  39. package/dist/src/lib/files/index.d.ts +0 -2
  40. package/dist/src/lib/files/index.d.ts.map +0 -1
  41. package/dist/src/lib/forms/forms.service.d.ts +0 -132
  42. package/dist/src/lib/forms/forms.service.d.ts.map +0 -1
  43. package/dist/src/lib/forms/index.d.ts +0 -2
  44. package/dist/src/lib/forms/index.d.ts.map +0 -1
  45. package/dist/src/lib/geolocation/geolocation.service.d.ts +0 -317
  46. package/dist/src/lib/geolocation/geolocation.service.d.ts.map +0 -1
  47. package/dist/src/lib/geolocation/index.d.ts +0 -2
  48. package/dist/src/lib/geolocation/index.d.ts.map +0 -1
  49. package/dist/src/lib/index.d.ts +0 -22
  50. package/dist/src/lib/index.d.ts.map +0 -1
  51. package/dist/src/lib/jarvis/index.d.ts +0 -2
  52. package/dist/src/lib/jarvis/index.d.ts.map +0 -1
  53. package/dist/src/lib/jarvis/jarvis.service.d.ts +0 -181
  54. package/dist/src/lib/jarvis/jarvis.service.d.ts.map +0 -1
  55. package/dist/src/lib/onboarding/index.d.ts +0 -2
  56. package/dist/src/lib/onboarding/index.d.ts.map +0 -1
  57. package/dist/src/lib/onboarding/onboarding.service.d.ts +0 -93
  58. package/dist/src/lib/onboarding/onboarding.service.d.ts.map +0 -1
  59. package/dist/src/lib/products/index.d.ts +0 -2
  60. package/dist/src/lib/products/index.d.ts.map +0 -1
  61. package/dist/src/lib/products/products.service.d.ts +0 -154
  62. package/dist/src/lib/products/products.service.d.ts.map +0 -1
  63. package/dist/src/lib/providers.d.ts +0 -97
  64. package/dist/src/lib/providers.d.ts.map +0 -1
  65. package/dist/src/lib/rewards/index.d.ts +0 -2
  66. package/dist/src/lib/rewards/index.d.ts.map +0 -1
  67. package/dist/src/lib/rewards/rewards.service.d.ts +0 -172
  68. package/dist/src/lib/rewards/rewards.service.d.ts.map +0 -1
  69. package/dist/src/lib/sales/index.d.ts +0 -2
  70. package/dist/src/lib/sales/index.d.ts.map +0 -1
  71. package/dist/src/lib/sales/sales.service.d.ts +0 -147
  72. package/dist/src/lib/sales/sales.service.d.ts.map +0 -1
  73. package/dist/src/lib/search/index.d.ts +0 -2
  74. package/dist/src/lib/search/index.d.ts.map +0 -1
  75. package/dist/src/lib/search/search.service.d.ts +0 -106
  76. package/dist/src/lib/search/search.service.d.ts.map +0 -1
  77. package/dist/src/lib/simple-providers.d.ts +0 -203
  78. package/dist/src/lib/simple-providers.d.ts.map +0 -1
  79. package/dist/src/lib/tokens.d.ts +0 -134
  80. package/dist/src/lib/tokens.d.ts.map +0 -1
  81. package/dist/src/lib/university/index.d.ts +0 -2
  82. package/dist/src/lib/university/index.d.ts.map +0 -1
  83. package/dist/src/lib/university/university.service.d.ts +0 -252
  84. package/dist/src/lib/university/university.service.d.ts.map +0 -1
  85. package/dist/src/lib/wallet/index.d.ts +0 -2
  86. package/dist/src/lib/wallet/index.d.ts.map +0 -1
  87. package/dist/src/lib/wallet/wallet.service.d.ts +0 -71
  88. package/dist/src/lib/wallet/wallet.service.d.ts.map +0 -1
@@ -0,0 +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","// @ts-nocheck\nimport { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from, tap } from 'rxjs';\nimport type { Transport, PageResult, ListParams } from '@23blocks/contracts';\nimport {\n createAuthenticationBlock,\n type AuthenticationBlock,\n type AuthenticationBlockConfig,\n type User,\n type Role,\n type Permission,\n type SignInRequest,\n type SignInResponse,\n type SignUpRequest,\n type SignUpResponse,\n type PasswordResetRequest,\n type PasswordUpdateRequest,\n type TokenValidationResponse,\n type RefreshTokenRequest,\n type RefreshTokenResponse,\n type MagicLinkRequest,\n type MagicLinkVerifyRequest,\n type InvitationRequest,\n type AcceptInvitationRequest,\n type ResendConfirmationRequest,\n type ValidateEmailRequest,\n type ValidateEmailResponse,\n type ValidateDocumentRequest,\n type ValidateDocumentResponse,\n type ApiKey,\n type ApiKeyWithSecret,\n type CreateApiKeyRequest,\n type UpdateApiKeyRequest,\n type UpdateUserRequest,\n type UpdateProfileRequest,\n type CreateRoleRequest,\n type UpdateRoleRequest,\n // MFA types\n type MfaSetupResponseFull,\n type MfaEnableRequest,\n type MfaDisableRequest,\n type MfaVerifyRequestFull,\n type MfaStatusResponse,\n type MfaVerificationResponse,\n type MfaOperationResponse,\n // OAuth types\n type OAuthSocialLoginRequest,\n type TenantLoginRequest,\n type TokenIntrospectionResponse,\n type TokenRevokeRequest,\n type TokenRevokeAllRequest,\n type TokenRevokeResponse,\n type TenantContextCreateRequest,\n type TenantContextResponse,\n type TenantContextAuditEntry,\n // User extended types\n type UserProfileFull,\n type ProfileRequest,\n type UpdateEmailRequest,\n type UserDeviceFull,\n type AddDeviceRequest,\n type UserSearchRequest,\n type AddUserSubscriptionRequest,\n type AccountRecoveryRequest,\n type AccountRecoveryResponse,\n type CompleteRecoveryRequest,\n type Company,\n type UserSubscription,\n // Avatar types\n type UserAvatarFull,\n type CreateAvatarRequest,\n type AvatarPresignResponse,\n type MultipartPresignRequest,\n type MultipartPresignResponse,\n type MultipartCompleteRequest,\n type MultipartCompleteResponse,\n // Tenant types\n type TenantUserFull,\n type CreateTenantUserRequest,\n type ValidateTenantCodeRequest,\n type ValidateTenantCodeResponse,\n type SearchTenantRequest,\n type UpdateTenantUserOnboardingRequest,\n type UpdateTenantUserSalesRequest,\n type ResendInvitationRequest,\n // JWKS types\n type JwksResponse,\n type RsaKey,\n type CreateRsaKeyRequest,\n type RotateRsaKeyRequest,\n // OIDC types\n type OidcDiscovery,\n type OidcAuthorizeRequest,\n type OidcTokenRequest,\n type OidcTokenResponse,\n type OidcUserInfo,\n // Permissions types\n type CreatePermissionRequest,\n type UpdatePermissionRequest,\n // App types\n type App,\n type Block,\n type Service,\n type CreateAppRequest,\n type UpdateAppRequest,\n // Subscription types\n type SubscriptionModel,\n type CompanySubscription,\n type SubscribeRequest,\n // Geography types\n type Country,\n type State,\n type County,\n type City,\n type Currency,\n // Guest and related types\n type Guest,\n type MagicLink,\n type RefreshToken,\n type UserDevice,\n type TenantUser,\n type MailTemplate,\n type CreateMagicLinkRequest,\n type RegisterDeviceRequest,\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 * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class LoginComponent {\n * constructor(private auth: AuthenticationService) {}\n *\n * login(email: string, password: string) {\n * this.auth.signIn({ email, password }).subscribe({\n * next: (response) => console.log('Signed in:', response.user),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\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 // Prefer per-service transport, fall back to legacy TRANSPORT for backward compatibility\n const transport = serviceTransport ?? legacyTransport;\n this.block = transport ? createAuthenticationBlock(transport, config) : null;\n this.tokenManager = tokenManager;\n this.simpleConfig = simpleConfig;\n }\n\n /**\n * Ensure the service is configured, throw helpful error if not\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 /**\n * Check if using simplified API with automatic token management\n */\n private get isTokenMode(): boolean {\n return this.tokenManager !== null && this.simpleConfig?.authMode !== 'cookie';\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Auth Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Sign in with email and password.\n * When using simplified API (provideBlocks23), tokens are stored automatically.\n */\n signIn(request: SignInRequest): Observable<SignInResponse> {\n const block = this.ensureConfigured();\n return from(block.auth.signIn(request)).pipe(\n tap((response) => {\n if (this.isTokenMode && this.tokenManager && response.accessToken) {\n this.tokenManager.setTokens(response.accessToken, response.refreshToken);\n }\n })\n );\n }\n\n /**\n * Sign up a new user.\n * When using simplified API, tokens are stored automatically if returned.\n */\n signUp(request: SignUpRequest): Observable<SignUpResponse> {\n const block = this.ensureConfigured();\n return from(block.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 * When using simplified API, tokens are cleared automatically.\n */\n signOut(): Observable<void> {\n const block = this.ensureConfigured();\n return from(block.auth.signOut()).pipe(\n tap(() => {\n if (this.isTokenMode && this.tokenManager) {\n this.tokenManager.clearTokens();\n }\n })\n );\n }\n\n requestPasswordReset(request: PasswordResetRequest): Observable<void> {\n return from(this.ensureConfigured().auth.requestPasswordReset(request));\n }\n\n updatePassword(request: PasswordUpdateRequest): Observable<void> {\n return from(this.ensureConfigured().auth.updatePassword(request));\n }\n\n validateToken(token: string): Observable<TokenValidationResponse> {\n return from(this.ensureConfigured().auth.validateToken(token));\n }\n\n getCurrentUser(): Observable<User | null> {\n return from(this.ensureConfigured().auth.getCurrentUser());\n }\n\n /**\n * Refresh the access token\n */\n refreshToken(request: RefreshTokenRequest): Observable<RefreshTokenResponse> {\n const block = this.ensureConfigured();\n return from(block.auth.refreshToken(request)).pipe(\n tap((response) => {\n if (this.isTokenMode && this.tokenManager && response.accessToken) {\n this.tokenManager.setTokens(response.accessToken, response.refreshToken);\n }\n })\n );\n }\n\n /**\n * Request a magic link for passwordless login\n */\n requestMagicLink(request: MagicLinkRequest): Observable<void> {\n return from(this.ensureConfigured().auth.requestMagicLink(request));\n }\n\n /**\n * Verify a magic link token\n */\n verifyMagicLink(request: MagicLinkVerifyRequest): Observable<SignInResponse> {\n const block = this.ensureConfigured();\n return from(block.auth.verifyMagicLink(request)).pipe(\n tap((response) => {\n if (this.isTokenMode && this.tokenManager && response.accessToken) {\n this.tokenManager.setTokens(response.accessToken, response.refreshToken);\n }\n })\n );\n }\n\n /**\n * Send an invitation to a new user\n */\n sendInvitation(request: InvitationRequest): Observable<void> {\n return from(this.ensureConfigured().auth.sendInvitation(request));\n }\n\n /**\n * Accept an invitation\n */\n acceptInvitation(request: AcceptInvitationRequest): Observable<SignInResponse> {\n const block = this.ensureConfigured();\n return from(block.auth.acceptInvitation(request)).pipe(\n tap((response) => {\n if (this.isTokenMode && this.tokenManager && response.accessToken) {\n this.tokenManager.setTokens(response.accessToken, response.refreshToken);\n }\n })\n );\n }\n\n /**\n * Confirm email with token\n */\n confirmEmail(token: string): Observable<User> {\n return from(this.ensureConfigured().auth.confirmEmail(token));\n }\n\n /**\n * Resend confirmation email\n */\n resendConfirmation(request: ResendConfirmationRequest): Observable<void> {\n return from(this.ensureConfigured().auth.resendConfirmation(request));\n }\n\n /**\n * Validate email before registration\n */\n validateEmail(request: ValidateEmailRequest): Observable<ValidateEmailResponse> {\n return from(this.ensureConfigured().auth.validateEmail(request));\n }\n\n /**\n * Validate document before registration\n */\n validateDocument(request: ValidateDocumentRequest): Observable<ValidateDocumentResponse> {\n return from(this.ensureConfigured().auth.validateDocument(request));\n }\n\n /**\n * Resend invitation email\n */\n resendInvitation(request: ResendInvitationRequest): Observable<User> {\n return from(this.ensureConfigured().auth.resendInvitation(request));\n }\n\n /**\n * Request account recovery (for deleted accounts)\n */\n requestAccountRecovery(request: AccountRecoveryRequest): Observable<AccountRecoveryResponse> {\n return from(this.ensureConfigured().auth.requestAccountRecovery(request));\n }\n\n /**\n * Complete account recovery with new password\n */\n completeAccountRecovery(request: CompleteRecoveryRequest): Observable<User> {\n return from(this.ensureConfigured().auth.completeAccountRecovery(request));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Users Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listUsers(params?: { page?: number; perPage?: number }): Observable<User[]> {\n return from(this.ensureConfigured().users.list(params));\n }\n\n getUser(id: string): Observable<User> {\n return from(this.ensureConfigured().users.get(id));\n }\n\n updateUser(id: string, request: UpdateUserRequest): Observable<User> {\n return from(this.ensureConfigured().users.update(id, request));\n }\n\n deleteUser(id: string): Observable<void> {\n return from(this.ensureConfigured().users.delete(id));\n }\n\n /**\n * Get a user by unique ID\n */\n getUserByUniqueId(uniqueId: string): Observable<User> {\n return from(this.ensureConfigured().users.getByUniqueId(uniqueId));\n }\n\n /**\n * Update user profile\n */\n updateUserProfile(userId: string, request: UpdateProfileRequest): Observable<User> {\n return from(this.ensureConfigured().users.updateProfile(userId, request));\n }\n\n /**\n * Activate a user\n */\n activateUser(id: string): Observable<User> {\n return from(this.ensureConfigured().users.activate(id));\n }\n\n /**\n * Deactivate a user\n */\n deactivateUser(id: string): Observable<User> {\n return from(this.ensureConfigured().users.deactivate(id));\n }\n\n /**\n * Change user role\n */\n changeUserRole(id: string, roleUniqueId: string, reason: string, forceReauth?: boolean): Observable<User> {\n return from(this.ensureConfigured().users.changeRole(id, roleUniqueId, reason, forceReauth));\n }\n\n /**\n * Search users by query\n */\n searchUsers(query: string, params?: ListParams): Observable<PageResult<User>> {\n return from(this.ensureConfigured().users.search(query, params));\n }\n\n /**\n * Advanced search users by criteria or payload\n */\n searchUsersAdvanced(request: UserSearchRequest, params?: ListParams): Observable<PageResult<User>> {\n return from(this.ensureConfigured().users.searchAdvanced(request, params));\n }\n\n /**\n * Get user profile\n */\n getUserProfile(userUniqueId: string): Observable<UserProfileFull> {\n return from(this.ensureConfigured().users.getProfile(userUniqueId));\n }\n\n /**\n * Create or update user profile\n */\n createUserProfile(request: ProfileRequest): Observable<UserProfileFull> {\n return from(this.ensureConfigured().users.createProfile(request));\n }\n\n /**\n * Update email address\n */\n updateUserEmail(userUniqueId: string, request: UpdateEmailRequest): Observable<User> {\n return from(this.ensureConfigured().users.updateEmail(userUniqueId, request));\n }\n\n /**\n * Get user devices\n */\n getUserDevices(userUniqueId: string, params?: ListParams): Observable<PageResult<UserDeviceFull>> {\n return from(this.ensureConfigured().users.getDevices(userUniqueId, params));\n }\n\n /**\n * Add a device\n */\n addUserDevice(request: AddDeviceRequest): Observable<UserDeviceFull> {\n return from(this.ensureConfigured().users.addDevice(request));\n }\n\n /**\n * Get user's companies\n */\n getUserCompanies(userUniqueId: string): Observable<Company[]> {\n return from(this.ensureConfigured().users.getCompanies(userUniqueId));\n }\n\n /**\n * Add subscription to user\n */\n addUserSubscription(userUniqueId: string, request: AddUserSubscriptionRequest): Observable<UserSubscription> {\n return from(this.ensureConfigured().users.addSubscription(userUniqueId, request));\n }\n\n /**\n * Update user subscription\n */\n updateUserSubscription(userUniqueId: string, request: AddUserSubscriptionRequest): Observable<UserSubscription> {\n return from(this.ensureConfigured().users.updateSubscription(userUniqueId, request));\n }\n\n /**\n * Resend confirmation email by user unique ID\n */\n resendConfirmationByUniqueId(userUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().users.resendConfirmationByUniqueId(userUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Roles Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listRoles(): Observable<Role[]> {\n return from(this.ensureConfigured().roles.list());\n }\n\n getRole(id: string): Observable<Role> {\n return from(this.ensureConfigured().roles.get(id));\n }\n\n createRole(request: CreateRoleRequest): Observable<Role> {\n return from(this.ensureConfigured().roles.create(request));\n }\n\n updateRole(id: string, request: UpdateRoleRequest): Observable<Role> {\n return from(this.ensureConfigured().roles.update(id, request));\n }\n\n deleteRole(id: string): Observable<void> {\n return from(this.ensureConfigured().roles.delete(id));\n }\n\n listPermissions(): Observable<Permission[]> {\n return from(this.ensureConfigured().roles.listPermissions());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Permissions Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List all permissions with pagination\n */\n listPermissionsPaginated(params?: ListParams): Observable<PageResult<Permission>> {\n return from(this.ensureConfigured().permissions.list(params));\n }\n\n /**\n * Get a permission by ID\n */\n getPermission(id: string): Observable<Permission> {\n return from(this.ensureConfigured().permissions.get(id));\n }\n\n /**\n * Create a new permission\n */\n createPermission(request: CreatePermissionRequest): Observable<Permission> {\n return from(this.ensureConfigured().permissions.create(request));\n }\n\n /**\n * Update a permission\n */\n updatePermission(id: string, request: UpdatePermissionRequest): Observable<Permission> {\n return from(this.ensureConfigured().permissions.update(id, request));\n }\n\n /**\n * Delete a permission\n */\n deletePermission(id: string): Observable<void> {\n return from(this.ensureConfigured().permissions.delete(id));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // API Keys Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listApiKeys(): Observable<ApiKey[]> {\n return from(this.ensureConfigured().apiKeys.list());\n }\n\n getApiKey(id: string): Observable<ApiKey> {\n return from(this.ensureConfigured().apiKeys.get(id));\n }\n\n createApiKey(request: CreateApiKeyRequest): Observable<ApiKeyWithSecret> {\n return from(this.ensureConfigured().apiKeys.create(request));\n }\n\n updateApiKey(id: string, request: UpdateApiKeyRequest): Observable<ApiKey> {\n return from(this.ensureConfigured().apiKeys.update(id, request));\n }\n\n revokeApiKey(id: string): Observable<void> {\n return from(this.ensureConfigured().apiKeys.revoke(id));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // MFA Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Initialize MFA setup - generates secret, QR code, and backup codes\n */\n mfaSetup(): Observable<MfaSetupResponseFull> {\n return from(this.ensureConfigured().mfa.setup());\n }\n\n /**\n * Enable MFA after verifying setup with TOTP code\n */\n mfaEnable(request: MfaEnableRequest): Observable<MfaOperationResponse> {\n return from(this.ensureConfigured().mfa.enable(request));\n }\n\n /**\n * Disable MFA with password confirmation\n */\n mfaDisable(request: MfaDisableRequest): Observable<MfaOperationResponse> {\n return from(this.ensureConfigured().mfa.disable(request));\n }\n\n /**\n * Verify MFA code during login\n */\n mfaVerify(request: MfaVerifyRequestFull): Observable<MfaVerificationResponse> {\n return from(this.ensureConfigured().mfa.verify(request));\n }\n\n /**\n * Get current MFA status\n */\n mfaStatus(): Observable<MfaStatusResponse> {\n return from(this.ensureConfigured().mfa.status());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // OAuth Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Login with Facebook OAuth token\n */\n loginWithFacebook(request: OAuthSocialLoginRequest): Observable<SignInResponse> {\n const block = this.ensureConfigured();\n return from(block.oauth.loginWithFacebook(request)).pipe(\n tap((response) => {\n if (this.isTokenMode && this.tokenManager && response.accessToken) {\n this.tokenManager.setTokens(response.accessToken, response.refreshToken);\n }\n })\n );\n }\n\n /**\n * Login with Google OAuth token\n */\n loginWithGoogle(request: OAuthSocialLoginRequest): Observable<SignInResponse> {\n const block = this.ensureConfigured();\n return from(block.oauth.loginWithGoogle(request)).pipe(\n tap((response) => {\n if (this.isTokenMode && this.tokenManager && response.accessToken) {\n this.tokenManager.setTokens(response.accessToken, response.refreshToken);\n }\n })\n );\n }\n\n /**\n * Login to a specific tenant\n */\n loginWithTenant(request: TenantLoginRequest): Observable<SignInResponse> {\n const block = this.ensureConfigured();\n return from(block.oauth.loginWithTenant(request)).pipe(\n tap((response) => {\n if (this.isTokenMode && this.tokenManager && response.accessToken) {\n this.tokenManager.setTokens(response.accessToken, response.refreshToken);\n }\n })\n );\n }\n\n /**\n * Introspect a token to validate and get information\n */\n introspectToken(token: string): Observable<TokenIntrospectionResponse> {\n return from(this.ensureConfigured().oauth.introspectToken(token));\n }\n\n /**\n * Revoke a specific token\n */\n revokeToken(request: TokenRevokeRequest): Observable<TokenRevokeResponse> {\n return from(this.ensureConfigured().oauth.revokeToken(request));\n }\n\n /**\n * Revoke all tokens for the current user\n */\n revokeAllTokens(request?: TokenRevokeAllRequest): Observable<TokenRevokeResponse> {\n return from(this.ensureConfigured().oauth.revokeAllTokens(request));\n }\n\n /**\n * Create a tenant context (switch to a different tenant)\n */\n createTenantContext(request: TenantContextCreateRequest): Observable<TenantContextResponse> {\n return from(this.ensureConfigured().oauth.createTenantContext(request));\n }\n\n /**\n * Revoke tenant context (exit tenant switch)\n */\n revokeTenantContext(): Observable<void> {\n return from(this.ensureConfigured().oauth.revokeTenantContext());\n }\n\n /**\n * Get tenant context audit log\n */\n auditTenantContext(): Observable<TenantContextAuditEntry[]> {\n return from(this.ensureConfigured().oauth.auditTenantContext());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Avatars Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List avatars for a user\n */\n listAvatars(userUniqueId: string, params?: ListParams): Observable<PageResult<UserAvatarFull>> {\n return from(this.ensureConfigured().avatars.list(userUniqueId, params));\n }\n\n /**\n * Get a specific avatar\n */\n getAvatar(userUniqueId: string): Observable<UserAvatarFull> {\n return from(this.ensureConfigured().avatars.get(userUniqueId));\n }\n\n /**\n * Create/update an avatar\n */\n createAvatar(userUniqueId: string, request: CreateAvatarRequest): Observable<UserAvatarFull> {\n return from(this.ensureConfigured().avatars.create(userUniqueId, request));\n }\n\n /**\n * Update an avatar\n */\n updateAvatar(userUniqueId: string, request: Partial<CreateAvatarRequest>): Observable<UserAvatarFull> {\n return from(this.ensureConfigured().avatars.update(userUniqueId, request));\n }\n\n /**\n * Delete an avatar\n */\n deleteAvatar(userUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().avatars.delete(userUniqueId));\n }\n\n /**\n * Get presigned URL for direct upload\n */\n presignAvatarUpload(userUniqueId: string, filename: string): Observable<AvatarPresignResponse> {\n return from(this.ensureConfigured().avatars.presignUpload(userUniqueId, filename));\n }\n\n /**\n * Get presigned URLs for multipart upload\n */\n multipartAvatarPresign(userUniqueId: string, request: MultipartPresignRequest): Observable<MultipartPresignResponse> {\n return from(this.ensureConfigured().avatars.multipartPresign(userUniqueId, request));\n }\n\n /**\n * Complete a multipart upload\n */\n multipartAvatarComplete(userUniqueId: string, request: MultipartCompleteRequest): Observable<MultipartCompleteResponse> {\n return from(this.ensureConfigured().avatars.multipartComplete(userUniqueId, request));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Tenants Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List child tenants\n */\n listChildTenants(params?: ListParams): Observable<PageResult<Company>> {\n return from(this.ensureConfigured().tenants.listChildren(params));\n }\n\n /**\n * Validate tenant code availability\n */\n validateTenantCode(request: ValidateTenantCodeRequest): Observable<ValidateTenantCodeResponse> {\n return from(this.ensureConfigured().tenants.validateCode(request));\n }\n\n /**\n * Search for a tenant by name\n */\n searchTenantByName(request: SearchTenantRequest): Observable<Company> {\n return from(this.ensureConfigured().tenants.searchByName(request));\n }\n\n /**\n * Search for a tenant by code\n */\n searchTenantByCode(request: SearchTenantRequest): Observable<Company> {\n return from(this.ensureConfigured().tenants.searchByCode(request));\n }\n\n /**\n * Create a tenant user relationship\n */\n createTenantUser(userUniqueId: string, request: CreateTenantUserRequest): Observable<TenantUserFull> {\n return from(this.ensureConfigured().tenants.createTenantUser(userUniqueId, request));\n }\n\n /**\n * Update tenant user onboarding status\n */\n updateTenantUserOnboarding(\n userUniqueId: string,\n urlId: string,\n request: UpdateTenantUserOnboardingRequest\n ): Observable<TenantUserFull> {\n return from(this.ensureConfigured().tenants.updateOnboarding(userUniqueId, urlId, request));\n }\n\n /**\n * Update tenant user sales/purchase status\n */\n updateTenantUserSales(\n userUniqueId: string,\n urlId: string,\n request: UpdateTenantUserSalesRequest\n ): Observable<TenantUserFull> {\n return from(this.ensureConfigured().tenants.updateSales(userUniqueId, urlId, request));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Apps Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List apps with pagination\n */\n listApps(params?: ListParams): Observable<PageResult<App>> {\n return from(this.ensureConfigured().apps.list(params));\n }\n\n /**\n * Get an app by ID\n */\n getApp(id: string): Observable<App> {\n return from(this.ensureConfigured().apps.get(id));\n }\n\n /**\n * Create a new app\n */\n createApp(request: CreateAppRequest): Observable<App> {\n return from(this.ensureConfigured().apps.create(request));\n }\n\n /**\n * Update an app\n */\n updateApp(id: string, request: UpdateAppRequest): Observable<App> {\n return from(this.ensureConfigured().apps.update(id, request));\n }\n\n /**\n * Delete an app\n */\n deleteApp(id: string): Observable<void> {\n return from(this.ensureConfigured().apps.delete(id));\n }\n\n /**\n * Regenerate webhook secret for an app\n */\n regenerateAppWebhookSecret(id: string): Observable<App> {\n return from(this.ensureConfigured().apps.regenerateWebhookSecret(id));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Blocks Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List blocks for a company\n */\n listBlocks(companyId: string, params?: ListParams): Observable<PageResult<Block>> {\n return from(this.ensureConfigured().blocks.list(companyId, params));\n }\n\n /**\n * Get a block by ID\n */\n getBlock(id: string): Observable<Block> {\n return from(this.ensureConfigured().blocks.get(id));\n }\n\n /**\n * Add a block to a company\n */\n addBlock(companyId: string, blockCode: string): Observable<Block> {\n return from(this.ensureConfigured().blocks.add(companyId, blockCode));\n }\n\n /**\n * Remove a block from a company\n */\n removeBlock(id: string): Observable<void> {\n return from(this.ensureConfigured().blocks.remove(id));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Services Registry Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List registered services\n */\n listServices(params?: ListParams): Observable<PageResult<Service>> {\n return from(this.ensureConfigured().services.list(params));\n }\n\n /**\n * Get a service by ID\n */\n getService(id: string): Observable<Service> {\n return from(this.ensureConfigured().services.get(id));\n }\n\n /**\n * Get a service by code\n */\n getServiceByCode(code: string): Observable<Service> {\n return from(this.ensureConfigured().services.getByCode(code));\n }\n\n /**\n * Health check all services\n */\n healthCheckServices(): Observable<Service[]> {\n return from(this.ensureConfigured().services.healthCheck());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Subscription Models Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List subscription models\n */\n listSubscriptionModels(params?: ListParams): Observable<PageResult<SubscriptionModel>> {\n return from(this.ensureConfigured().subscriptionModels.list(params));\n }\n\n /**\n * Get a subscription model by ID\n */\n getSubscriptionModel(id: string): Observable<SubscriptionModel> {\n return from(this.ensureConfigured().subscriptionModels.get(id));\n }\n\n /**\n * Get a subscription model by code\n */\n getSubscriptionModelByCode(code: string): Observable<SubscriptionModel> {\n return from(this.ensureConfigured().subscriptionModels.getByCode(code));\n }\n\n /**\n * List promotional subscription models\n */\n listPromotionalSubscriptionModels(): Observable<SubscriptionModel[]> {\n return from(this.ensureConfigured().subscriptionModels.promotional());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // User Subscriptions Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List user subscriptions\n */\n listUserSubscriptions(params?: ListParams): Observable<PageResult<UserSubscription>> {\n return from(this.ensureConfigured().userSubscriptions.list(params));\n }\n\n /**\n * Get a user subscription by ID\n */\n getUserSubscription(id: string): Observable<UserSubscription> {\n return from(this.ensureConfigured().userSubscriptions.get(id));\n }\n\n /**\n * Get subscriptions for a user\n */\n getSubscriptionsForUser(userUniqueId: string): Observable<UserSubscription[]> {\n return from(this.ensureConfigured().userSubscriptions.forUser(userUniqueId));\n }\n\n /**\n * Subscribe a user to a plan\n */\n subscribeUser(userUniqueId: string, request: SubscribeRequest): Observable<UserSubscription> {\n return from(this.ensureConfigured().userSubscriptions.subscribe(userUniqueId, request));\n }\n\n /**\n * Cancel a user subscription\n */\n cancelUserSubscription(id: string): Observable<UserSubscription> {\n return from(this.ensureConfigured().userSubscriptions.cancel(id));\n }\n\n /**\n * Reactivate a user subscription\n */\n reactivateUserSubscription(id: string): Observable<UserSubscription> {\n return from(this.ensureConfigured().userSubscriptions.reactivate(id));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Company Subscriptions Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List company subscriptions\n */\n listCompanySubscriptions(params?: ListParams): Observable<PageResult<CompanySubscription>> {\n return from(this.ensureConfigured().companySubscriptions.list(params));\n }\n\n /**\n * Get a company subscription by ID\n */\n getCompanySubscription(id: string): Observable<CompanySubscription> {\n return from(this.ensureConfigured().companySubscriptions.get(id));\n }\n\n /**\n * Get subscriptions for a company\n */\n getSubscriptionsForCompany(companyUniqueId: string): Observable<CompanySubscription[]> {\n return from(this.ensureConfigured().companySubscriptions.forCompany(companyUniqueId));\n }\n\n /**\n * Subscribe a company to a plan\n */\n subscribeCompany(companyUniqueId: string, request: SubscribeRequest): Observable<CompanySubscription> {\n return from(this.ensureConfigured().companySubscriptions.subscribe(companyUniqueId, request));\n }\n\n /**\n * Cancel a company subscription\n */\n cancelCompanySubscription(id: string): Observable<CompanySubscription> {\n return from(this.ensureConfigured().companySubscriptions.cancel(id));\n }\n\n /**\n * Reactivate a company subscription\n */\n reactivateCompanySubscription(id: string): Observable<CompanySubscription> {\n return from(this.ensureConfigured().companySubscriptions.reactivate(id));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Countries Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List countries with pagination\n */\n listCountries(params?: ListParams): Observable<PageResult<Country>> {\n return from(this.ensureConfigured().countries.list(params));\n }\n\n /**\n * Get a country by ID\n */\n getCountry(id: string): Observable<Country> {\n return from(this.ensureConfigured().countries.get(id));\n }\n\n /**\n * Get a country by ISO code\n */\n getCountryByIsoCode(isoCode: string): Observable<Country> {\n return from(this.ensureConfigured().countries.getByIsoCode(isoCode));\n }\n\n /**\n * Get all countries (no pagination)\n */\n getAllCountries(): Observable<Country[]> {\n return from(this.ensureConfigured().countries.all());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // States Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List states with pagination\n */\n listStates(params?: ListParams): Observable<PageResult<State>> {\n return from(this.ensureConfigured().states.list(params));\n }\n\n /**\n * Get a state by ID\n */\n getState(id: string): Observable<State> {\n return from(this.ensureConfigured().states.get(id));\n }\n\n /**\n * Get states for a country\n */\n getStatesForCountry(countryId: string): Observable<State[]> {\n return from(this.ensureConfigured().states.forCountry(countryId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Counties Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List counties with pagination\n */\n listCounties(params?: ListParams): Observable<PageResult<County>> {\n return from(this.ensureConfigured().counties.list(params));\n }\n\n /**\n * Get a county by ID\n */\n getCounty(id: string): Observable<County> {\n return from(this.ensureConfigured().counties.get(id));\n }\n\n /**\n * Get counties for a state\n */\n getCountiesForState(stateId: string): Observable<County[]> {\n return from(this.ensureConfigured().counties.forState(stateId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Cities Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List cities with pagination\n */\n listCities(params?: ListParams): Observable<PageResult<City>> {\n return from(this.ensureConfigured().cities.list(params));\n }\n\n /**\n * Get a city by ID\n */\n getCity(id: string): Observable<City> {\n return from(this.ensureConfigured().cities.get(id));\n }\n\n /**\n * Get cities for a state\n */\n getCitiesForState(stateId: string): Observable<City[]> {\n return from(this.ensureConfigured().cities.forState(stateId));\n }\n\n /**\n * Get cities for a county\n */\n getCitiesForCounty(countyId: string): Observable<City[]> {\n return from(this.ensureConfigured().cities.forCounty(countyId));\n }\n\n /**\n * Search cities by name\n */\n searchCities(query: string, params?: ListParams): Observable<PageResult<City>> {\n return from(this.ensureConfigured().cities.search(query, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Currencies Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List currencies with pagination\n */\n listCurrencies(params?: ListParams): Observable<PageResult<Currency>> {\n return from(this.ensureConfigured().currencies.list(params));\n }\n\n /**\n * Get a currency by ID\n */\n getCurrency(id: string): Observable<Currency> {\n return from(this.ensureConfigured().currencies.get(id));\n }\n\n /**\n * Get a currency by code\n */\n getCurrencyByCode(code: string): Observable<Currency> {\n return from(this.ensureConfigured().currencies.getByCode(code));\n }\n\n /**\n * Get all currencies (no pagination)\n */\n getAllCurrencies(): Observable<Currency[]> {\n return from(this.ensureConfigured().currencies.all());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Guests Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List guests with pagination\n */\n listGuests(params?: ListParams): Observable<PageResult<Guest>> {\n return from(this.ensureConfigured().guests.list(params));\n }\n\n /**\n * Get a guest by ID\n */\n getGuest(id: string): Observable<Guest> {\n return from(this.ensureConfigured().guests.get(id));\n }\n\n /**\n * Track a guest visit\n */\n trackGuest(): Observable<Guest> {\n return from(this.ensureConfigured().guests.track());\n }\n\n /**\n * Convert guest to user (registration)\n */\n convertGuest(id: string): Observable<Guest> {\n return from(this.ensureConfigured().guests.convert(id));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Magic Links Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List magic links with pagination\n */\n listMagicLinks(params?: ListParams): Observable<PageResult<MagicLink>> {\n return from(this.ensureConfigured().magicLinks.list(params));\n }\n\n /**\n * Get a magic link by ID\n */\n getMagicLink(id: string): Observable<MagicLink> {\n return from(this.ensureConfigured().magicLinks.get(id));\n }\n\n /**\n * Create a magic link\n */\n createMagicLink(request: CreateMagicLinkRequest): Observable<MagicLink> {\n return from(this.ensureConfigured().magicLinks.create(request));\n }\n\n /**\n * Validate a magic link token\n */\n validateMagicLink(token: string): Observable<MagicLink> {\n return from(this.ensureConfigured().magicLinks.validate(token));\n }\n\n /**\n * Expire a magic link\n */\n expireMagicLink(id: string): Observable<MagicLink> {\n return from(this.ensureConfigured().magicLinks.expire(id));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Refresh Tokens Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List refresh tokens for the current user\n */\n listRefreshTokens(params?: ListParams): Observable<PageResult<RefreshToken>> {\n return from(this.ensureConfigured().refreshTokens.list(params));\n }\n\n /**\n * Get a refresh token by ID\n */\n getRefreshToken(id: string): Observable<RefreshToken> {\n return from(this.ensureConfigured().refreshTokens.get(id));\n }\n\n /**\n * Revoke a refresh token\n */\n revokeRefreshToken(id: string): Observable<RefreshToken> {\n return from(this.ensureConfigured().refreshTokens.revoke(id));\n }\n\n /**\n * Revoke all refresh tokens for current user\n */\n revokeAllRefreshTokens(): Observable<void> {\n return from(this.ensureConfigured().refreshTokens.revokeAll());\n }\n\n /**\n * Revoke all refresh tokens except current\n */\n revokeOtherRefreshTokens(): Observable<void> {\n return from(this.ensureConfigured().refreshTokens.revokeOthers());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // User Devices Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List devices for current user\n */\n listDevices(params?: ListParams): Observable<PageResult<UserDevice>> {\n return from(this.ensureConfigured().userDevices.list(params));\n }\n\n /**\n * Get a device by ID\n */\n getDevice(id: string): Observable<UserDevice> {\n return from(this.ensureConfigured().userDevices.get(id));\n }\n\n /**\n * Register a new device\n */\n registerDevice(request: RegisterDeviceRequest): Observable<UserDevice> {\n return from(this.ensureConfigured().userDevices.register(request));\n }\n\n /**\n * Update device settings\n */\n updateDevice(id: string, request: Partial<RegisterDeviceRequest>): Observable<UserDevice> {\n return from(this.ensureConfigured().userDevices.update(id, request));\n }\n\n /**\n * Unregister a device\n */\n unregisterDevice(id: string): Observable<void> {\n return from(this.ensureConfigured().userDevices.unregister(id));\n }\n\n /**\n * Set default device\n */\n setDefaultDevice(id: string): Observable<UserDevice> {\n return from(this.ensureConfigured().userDevices.setDefault(id));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Tenant Users Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Get current tenant user context\n */\n getCurrentTenantUser(): Observable<TenantUser> {\n return from(this.ensureConfigured().tenantUsers.current());\n }\n\n /**\n * Get tenant user by user ID\n */\n getTenantUser(userUniqueId: string): Observable<TenantUser> {\n return from(this.ensureConfigured().tenantUsers.get(userUniqueId));\n }\n\n /**\n * List tenant users\n */\n listTenantUsers(params?: ListParams): Observable<TenantUser[]> {\n return from(this.ensureConfigured().tenantUsers.list(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Mail Templates Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List mail templates with pagination\n */\n listMailTemplates(params?: ListParams): Observable<PageResult<MailTemplate>> {\n return from(this.ensureConfigured().mailTemplates.list(params));\n }\n\n /**\n * Get a mail template by ID\n */\n getMailTemplate(id: string): Observable<MailTemplate> {\n return from(this.ensureConfigured().mailTemplates.get(id));\n }\n\n /**\n * Get a mail template by event name\n */\n getMailTemplateByEvent(eventName: string): Observable<MailTemplate> {\n return from(this.ensureConfigured().mailTemplates.getByEvent(eventName));\n }\n\n /**\n * Update a mail template\n */\n updateMailTemplate(id: string, template: Partial<MailTemplate>): Observable<MailTemplate> {\n return from(this.ensureConfigured().mailTemplates.update(id, template));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Token Management (only applicable with provideBlocks23)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Get the current access token (token mode only).\n * Returns null if using cookie mode or no token is stored.\n */\n getAccessToken(): string | null {\n return this.tokenManager?.getAccessToken() ?? null;\n }\n\n /**\n * Get the current refresh token (token mode only).\n * Returns null if using cookie mode or no token is stored.\n */\n getRefreshToken(): string | null {\n return this.tokenManager?.getRefreshToken() ?? null;\n }\n\n /**\n * Manually set tokens (token mode only).\n * Useful for SSR hydration or external auth flows.\n */\n setTokens(accessToken: string, refreshToken?: string): void {\n this.tokenManager?.setTokens(accessToken, refreshToken);\n }\n\n /**\n * Clear stored tokens.\n */\n clearTokens(): void {\n this.tokenManager?.clearTokens();\n }\n\n /**\n * Check if user is likely authenticated.\n * In token mode: checks if token exists.\n * In cookie mode: always returns null (use validateToken instead).\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 // JWKS Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Get the JSON Web Key Set (JWKS) for verifying tokens\n */\n getJwks(): Observable<JwksResponse> {\n return from(this.ensureConfigured().jwks.getJwks());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Admin RSA Keys Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List all RSA keys\n */\n listRsaKeys(): Observable<RsaKey[]> {\n return from(this.ensureConfigured().adminRsaKeys.list());\n }\n\n /**\n * Create a new RSA key\n */\n createRsaKey(request: CreateRsaKeyRequest): Observable<RsaKey> {\n return from(this.ensureConfigured().adminRsaKeys.create(request));\n }\n\n /**\n * Rotate an RSA key (creates new, deactivates old)\n */\n rotateRsaKey(kid: string, request?: RotateRsaKeyRequest): Observable<RsaKey> {\n return from(this.ensureConfigured().adminRsaKeys.rotate(kid, request));\n }\n\n /**\n * Delete an RSA key\n */\n deleteRsaKey(kid: string): Observable<void> {\n return from(this.ensureConfigured().adminRsaKeys.delete(kid));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // OIDC Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Get OpenID Connect discovery document\n */\n getOidcDiscovery(): Observable<OidcDiscovery> {\n return from(this.ensureConfigured().oidc.discovery());\n }\n\n /**\n * Get authorization endpoint URL with parameters\n */\n getOidcAuthorizeUrl(request: OidcAuthorizeRequest): string {\n return this.ensureConfigured().oidc.authorize(request);\n }\n\n /**\n * Exchange authorization code for tokens\n */\n exchangeOidcToken(request: OidcTokenRequest): Observable<OidcTokenResponse> {\n return from(this.ensureConfigured().oidc.token(request));\n }\n\n /**\n * Get user info from OIDC userinfo endpoint\n */\n getOidcUserInfo(accessToken: string): Observable<OidcUserInfo> {\n return from(this.ensureConfigured().oidc.userinfo(accessToken));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get authenticationBlock(): AuthenticationBlock {\n return this.ensureConfigured();\n }\n}\n","// @ts-nocheck\nimport { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createSearchBlock,\n type SearchBlock,\n type SearchBlockConfig,\n type SearchResult,\n type SearchQuery,\n type LastQuery,\n type FavoriteEntity,\n type EntityType,\n type SearchRequest,\n type SearchResponse,\n type AddFavoriteRequest,\n type SearchEntity,\n type EntityTypeSchema,\n type RegisterEntityRequest,\n type UpdateEntityRequest,\n type ListEntitiesParams,\n type CopilotSearchRequest,\n type SearchIdentity,\n type RegisterIdentityRequest,\n type UpdateIdentityRequest,\n type ListIdentitiesParams,\n type JarvisSearchQuery,\n type JarvisSearchResult,\n} from '@23blocks/block-search';\nimport { TRANSPORT, SEARCH_TRANSPORT, SEARCH_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Search block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class SearchComponent {\n * results$ = new BehaviorSubject<SearchResult[]>([]);\n *\n * constructor(private searchService: SearchService) {}\n *\n * onSearch(query: string) {\n * this.searchService.search({ query }).subscribe({\n * next: (response) => this.results$.next(response.results),\n * error: (err) => console.error('Search failed:', err),\n * });\n * }\n * }\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 /**\n * Ensure the service is configured, throw helpful error if not\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 // ─────────────────────────────────────────────────────────────────────────────\n // Search Operations\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Perform a search query\n */\n search(request: SearchRequest): Observable<SearchResponse> {\n return from(this.ensureConfigured().search.search(request));\n }\n\n /**\n * Get search suggestions for autocomplete\n */\n suggest(query: string, limit?: number): Observable<SearchResult[]> {\n return from(this.ensureConfigured().search.suggest(query, limit));\n }\n\n /**\n * Get available entity types for filtering\n */\n getEntityTypes(): Observable<EntityType[]> {\n return from(this.ensureConfigured().search.entityTypes());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Search History\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Get recent search queries\n */\n getLastQueries(limit?: number): Observable<LastQuery[]> {\n return from(this.ensureConfigured().history.getLastQueries(limit));\n }\n\n /**\n * Get the full history of search queries\n */\n getQueryHistory(params?: { page?: number; perPage?: number }): Observable<SearchQuery[]> {\n return from(this.ensureConfigured().history.getHistory(params));\n }\n\n /**\n * Clear search history\n */\n clearHistory(): Observable<void> {\n return from(this.ensureConfigured().history.clear());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Favorites\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List user's favorite entities\n */\n listFavorites(): Observable<FavoriteEntity[]> {\n return from(this.ensureConfigured().favorites.list());\n }\n\n /**\n * Add an entity to favorites\n */\n addFavorite(request: AddFavoriteRequest): Observable<FavoriteEntity> {\n return from(this.ensureConfigured().favorites.add(request));\n }\n\n /**\n * Remove an entity from favorites\n */\n removeFavorite(id: string): Observable<void> {\n return from(this.ensureConfigured().favorites.remove(id));\n }\n\n /**\n * Check if an entity is favorited\n */\n isFavorite(entityUniqueId: string): Observable<boolean> {\n return from(this.ensureConfigured().favorites.isFavorite(entityUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Entities Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listEntities(params?: ListEntitiesParams): Observable<PageResult<SearchEntity>> {\n return from(this.ensureConfigured().entities.list(params));\n }\n\n getEntity(uniqueId: string): Observable<SearchEntity> {\n return from(this.ensureConfigured().entities.get(uniqueId));\n }\n\n registerEntity(uniqueId: string, data: RegisterEntityRequest): Observable<SearchEntity> {\n return from(this.ensureConfigured().entities.register(uniqueId, data));\n }\n\n updateEntity(uniqueId: string, data: UpdateEntityRequest): Observable<SearchEntity> {\n return from(this.ensureConfigured().entities.update(uniqueId, data));\n }\n\n deleteEntity(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().entities.delete(uniqueId));\n }\n\n listRegisteredEntityTypes(): Observable<{ entityType: string }[]> {\n return from(this.ensureConfigured().entities.listEntityTypes());\n }\n\n getEntityTypeSchema(entityType: string): Observable<EntityTypeSchema> {\n return from(this.ensureConfigured().entities.getEntityTypeSchema(entityType));\n }\n\n searchByCopilot(data: CopilotSearchRequest): Observable<SearchEntity[]> {\n return from(this.ensureConfigured().entities.searchByCopilot(data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Identities Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listIdentities(params?: ListIdentitiesParams): Observable<PageResult<SearchIdentity>> {\n return from(this.ensureConfigured().identities.list(params));\n }\n\n getIdentity(uniqueId: string): Observable<SearchIdentity> {\n return from(this.ensureConfigured().identities.get(uniqueId));\n }\n\n registerIdentity(uniqueId: string, data: RegisterIdentityRequest): Observable<SearchIdentity> {\n return from(this.ensureConfigured().identities.register(uniqueId, data));\n }\n\n updateIdentity(uniqueId: string, data: UpdateIdentityRequest): Observable<SearchIdentity> {\n return from(this.ensureConfigured().identities.update(uniqueId, data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Jarvis AI-Enhanced Search Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Perform AI-enhanced search using Jarvis\n */\n jarvisSearch(query: JarvisSearchQuery): Observable<PageResult<JarvisSearchResult>> {\n return from(this.ensureConfigured().jarvis.search(query));\n }\n\n /**\n * Get semantic suggestions using Jarvis AI\n */\n jarvisSuggest(query: string, limit?: number): Observable<string[]> {\n return from(this.ensureConfigured().jarvis.suggest(query, limit));\n }\n\n /**\n * Get related entities using Jarvis AI\n */\n jarvisGetRelated(entityUniqueId: string, entityType: string, limit?: number): Observable<JarvisSearchResult[]> {\n return from(this.ensureConfigured().jarvis.getRelated(entityUniqueId, entityType, limit));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n */\n get searchBlock(): SearchBlock {\n return this.ensureConfigured();\n }\n}\n","// @ts-nocheck\nimport { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createProductsBlock,\n type ProductsBlock,\n type ProductsBlockConfig,\n type Product,\n type ProductVariation,\n type ProductImage,\n type ProductStock,\n type ProductReview,\n type CreateProductRequest,\n type UpdateProductRequest,\n type ListProductsParams,\n type CreateVariationRequest,\n type UpdateVariationRequest,\n type Cart,\n type CartDetail,\n type AddToCartRequest,\n type UpdateCartItemRequest,\n type UpdateCartRequest,\n type CheckoutRequest,\n type Category,\n type Brand,\n type Vendor,\n type Warehouse,\n type Channel,\n type Collection,\n type CreateCategoryRequest,\n type UpdateCategoryRequest,\n type CreateBrandRequest,\n type UpdateBrandRequest,\n type CreateVendorRequest,\n type UpdateVendorRequest,\n type CreateWarehouseRequest,\n type UpdateWarehouseRequest,\n type ListCategoriesParams,\n type ListVendorsParams,\n type ListWarehousesParams,\n type ProductSet,\n type CreateProductSetRequest,\n type UpdateProductSetRequest,\n type ListProductSetsParams,\n type ShoppingList,\n type CreateShoppingListRequest,\n type UpdateShoppingListRequest,\n type ListShoppingListsParams,\n type ProductPromotion,\n type CreateProductPromotionRequest,\n type UpdateProductPromotionRequest,\n type ListProductPromotionsParams,\n type ProductPrice,\n type CreateProductPriceRequest,\n type UpdateProductPriceRequest,\n type ListProductPricesParams,\n type ProductFilter,\n type CreateProductFilterRequest,\n type UpdateProductFilterRequest,\n type ListProductFiltersParams,\n type AddToMyCartRequest,\n type UpdateMyCartRequest,\n type AbandonedCart,\n type AbandonedCartsParams,\n type CreateVisitorRequest,\n type Visitor,\n // Product vendor types\n type ProductVendor,\n type ListProductVendorsParams,\n} from '@23blocks/block-products';\nimport { TRANSPORT, PRODUCTS_TRANSPORT, PRODUCTS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Products block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class ProductsComponent {\n * constructor(private products: ProductsService) {}\n *\n * loadProducts() {\n * this.products.listProducts().subscribe({\n * next: (result) => console.log('Products:', result.data),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\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 /**\n * Ensure the service is configured, throw helpful error if not\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 // ─────────────────────────────────────────────────────────────────────────────\n // Products Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listProducts(params?: ListProductsParams): Observable<PageResult<Product>> {\n return from(this.ensureConfigured().products.list(params));\n }\n\n getProduct(uniqueId: string): Observable<Product> {\n return from(this.ensureConfigured().products.get(uniqueId));\n }\n\n createProduct(data: CreateProductRequest): Observable<Product> {\n return from(this.ensureConfigured().products.create(data));\n }\n\n updateProduct(uniqueId: string, data: UpdateProductRequest): Observable<Product> {\n return from(this.ensureConfigured().products.update(uniqueId, data));\n }\n\n deleteProduct(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().products.delete(uniqueId));\n }\n\n recoverProduct(uniqueId: string): Observable<Product> {\n return from(this.ensureConfigured().products.recover(uniqueId));\n }\n\n searchProducts(query: string, params?: ListProductsParams): Observable<PageResult<Product>> {\n return from(this.ensureConfigured().products.search(query, params));\n }\n\n listDeletedProducts(params?: ListProductsParams): Observable<PageResult<Product>> {\n return from(this.ensureConfigured().products.listDeleted(params));\n }\n\n // Variations\n listVariations(productUniqueId: string): Observable<ProductVariation[]> {\n return from(this.ensureConfigured().products.listVariations(productUniqueId));\n }\n\n getVariation(uniqueId: string): Observable<ProductVariation> {\n return from(this.ensureConfigured().products.getVariation(uniqueId));\n }\n\n createVariation(data: CreateVariationRequest): Observable<ProductVariation> {\n return from(this.ensureConfigured().products.createVariation(data));\n }\n\n updateVariation(uniqueId: string, data: UpdateVariationRequest): Observable<ProductVariation> {\n return from(this.ensureConfigured().products.updateVariation(uniqueId, data));\n }\n\n deleteVariation(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().products.deleteVariation(uniqueId));\n }\n\n // Images\n listImages(productUniqueId: string): Observable<ProductImage[]> {\n return from(this.ensureConfigured().products.listImages(productUniqueId));\n }\n\n addImage(productUniqueId: string, imageUrl: string, isPrimary?: boolean): Observable<ProductImage> {\n return from(this.ensureConfigured().products.addImage(productUniqueId, imageUrl, isPrimary));\n }\n\n deleteImage(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().products.deleteImage(uniqueId));\n }\n\n // Stock\n getStock(productUniqueId: string, vendorUniqueId?: string): Observable<ProductStock[]> {\n return from(this.ensureConfigured().products.getStock(productUniqueId, vendorUniqueId));\n }\n\n updateStock(\n productUniqueId: string,\n vendorUniqueId: string,\n warehouseUniqueId: string,\n quantity: number\n ): Observable<ProductStock> {\n return from(this.ensureConfigured().products.updateStock(productUniqueId, vendorUniqueId, warehouseUniqueId, quantity));\n }\n\n // Reviews\n listReviews(productUniqueId: string): Observable<PageResult<ProductReview>> {\n return from(this.ensureConfigured().products.listReviews(productUniqueId));\n }\n\n addReview(\n productUniqueId: string,\n rating: number,\n title?: string,\n content?: string\n ): Observable<ProductReview> {\n return from(this.ensureConfigured().products.addReview(productUniqueId, rating, title, content));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Cart Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getCart(userUniqueId: string): Observable<Cart> {\n return from(this.ensureConfigured().cart.get(userUniqueId));\n }\n\n getOrCreateCart(userUniqueId: string): Observable<Cart> {\n return from(this.ensureConfigured().cart.getOrCreate(userUniqueId));\n }\n\n updateCart(userUniqueId: string, data: UpdateCartRequest): Observable<Cart> {\n return from(this.ensureConfigured().cart.update(userUniqueId, data));\n }\n\n deleteCart(userUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().cart.delete(userUniqueId));\n }\n\n // Cart Items\n addCartItem(userUniqueId: string, item: AddToCartRequest): Observable<Cart> {\n return from(this.ensureConfigured().cart.addItem(userUniqueId, item));\n }\n\n updateCartItem(userUniqueId: string, productUniqueId: string, data: UpdateCartItemRequest): Observable<Cart> {\n return from(this.ensureConfigured().cart.updateItem(userUniqueId, productUniqueId, data));\n }\n\n removeCartItem(userUniqueId: string, productUniqueId: string): Observable<Cart> {\n return from(this.ensureConfigured().cart.removeItem(userUniqueId, productUniqueId));\n }\n\n getCartItems(userUniqueId: string): Observable<CartDetail[]> {\n return from(this.ensureConfigured().cart.getItems(userUniqueId));\n }\n\n // Checkout\n checkout(userUniqueId: string, data?: CheckoutRequest): Observable<Cart> {\n return from(this.ensureConfigured().cart.checkout(userUniqueId, data));\n }\n\n orderCart(userUniqueId: string): Observable<{ cart: Cart; orderUniqueId: string }> {\n return from(this.ensureConfigured().cart.order(userUniqueId));\n }\n\n orderCartItem(userUniqueId: string, productUniqueId: string): Observable<{ cart: Cart; orderUniqueId: string }> {\n return from(this.ensureConfigured().cart.orderItem(userUniqueId, productUniqueId));\n }\n\n cancelCart(userUniqueId: string): Observable<Cart> {\n return from(this.ensureConfigured().cart.cancel(userUniqueId));\n }\n\n cancelCartItem(userUniqueId: string, productUniqueId: string): Observable<Cart> {\n return from(this.ensureConfigured().cart.cancelItem(userUniqueId, productUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Categories Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCategories(params?: ListCategoriesParams): Observable<PageResult<Category>> {\n return from(this.ensureConfigured().categories.list(params));\n }\n\n getCategory(uniqueId: string): Observable<Category> {\n return from(this.ensureConfigured().categories.get(uniqueId));\n }\n\n createCategory(data: CreateCategoryRequest): Observable<Category> {\n return from(this.ensureConfigured().categories.create(data));\n }\n\n updateCategory(uniqueId: string, data: UpdateCategoryRequest): Observable<Category> {\n return from(this.ensureConfigured().categories.update(uniqueId, data));\n }\n\n deleteCategory(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().categories.delete(uniqueId));\n }\n\n recoverCategory(uniqueId: string): Observable<Category> {\n return from(this.ensureConfigured().categories.recover(uniqueId));\n }\n\n getCategoryChildren(uniqueId: string): Observable<Category[]> {\n return from(this.ensureConfigured().categories.getChildren(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Brands Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listBrands(page?: number, perPage?: number): Observable<PageResult<Brand>> {\n return from(this.ensureConfigured().brands.list(page, perPage));\n }\n\n getBrand(uniqueId: string): Observable<Brand> {\n return from(this.ensureConfigured().brands.get(uniqueId));\n }\n\n createBrand(data: CreateBrandRequest): Observable<Brand> {\n return from(this.ensureConfigured().brands.create(data));\n }\n\n updateBrand(uniqueId: string, data: UpdateBrandRequest): Observable<Brand> {\n return from(this.ensureConfigured().brands.update(uniqueId, data));\n }\n\n deleteBrand(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().brands.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Vendors Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listVendors(params?: ListVendorsParams): Observable<PageResult<Vendor>> {\n return from(this.ensureConfigured().vendors.list(params));\n }\n\n getVendor(uniqueId: string): Observable<Vendor> {\n return from(this.ensureConfigured().vendors.get(uniqueId));\n }\n\n createVendor(data: CreateVendorRequest): Observable<Vendor> {\n return from(this.ensureConfigured().vendors.create(data));\n }\n\n updateVendor(uniqueId: string, data: UpdateVendorRequest): Observable<Vendor> {\n return from(this.ensureConfigured().vendors.update(uniqueId, data));\n }\n\n deleteVendor(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().vendors.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Warehouses Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listWarehouses(params?: ListWarehousesParams): Observable<PageResult<Warehouse>> {\n return from(this.ensureConfigured().warehouses.list(params));\n }\n\n getWarehouse(uniqueId: string): Observable<Warehouse> {\n return from(this.ensureConfigured().warehouses.get(uniqueId));\n }\n\n createWarehouse(data: CreateWarehouseRequest): Observable<Warehouse> {\n return from(this.ensureConfigured().warehouses.create(data));\n }\n\n updateWarehouse(uniqueId: string, data: UpdateWarehouseRequest): Observable<Warehouse> {\n return from(this.ensureConfigured().warehouses.update(uniqueId, data));\n }\n\n deleteWarehouse(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().warehouses.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Channels Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listChannels(): Observable<Channel[]> {\n return from(this.ensureConfigured().channels.list());\n }\n\n getChannel(uniqueId: string): Observable<Channel> {\n return from(this.ensureConfigured().channels.get(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Collections Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCollections(): Observable<Collection[]> {\n return from(this.ensureConfigured().collections.list());\n }\n\n getCollection(uniqueId: string): Observable<Collection> {\n return from(this.ensureConfigured().collections.get(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Product Sets Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listProductSets(params?: ListProductSetsParams): Observable<PageResult<ProductSet>> {\n return from(this.ensureConfigured().productSets.list(params));\n }\n\n getProductSet(uniqueId: string): Observable<ProductSet> {\n return from(this.ensureConfigured().productSets.get(uniqueId));\n }\n\n createProductSet(data: CreateProductSetRequest): Observable<ProductSet> {\n return from(this.ensureConfigured().productSets.create(data));\n }\n\n updateProductSet(uniqueId: string, data: UpdateProductSetRequest): Observable<ProductSet> {\n return from(this.ensureConfigured().productSets.update(uniqueId, data));\n }\n\n deleteProductSet(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().productSets.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Shopping Lists Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listShoppingLists(params?: ListShoppingListsParams): Observable<PageResult<ShoppingList>> {\n return from(this.ensureConfigured().shoppingLists.list(params));\n }\n\n getShoppingList(uniqueId: string): Observable<ShoppingList> {\n return from(this.ensureConfigured().shoppingLists.get(uniqueId));\n }\n\n createShoppingList(data: CreateShoppingListRequest): Observable<ShoppingList> {\n return from(this.ensureConfigured().shoppingLists.create(data));\n }\n\n updateShoppingList(uniqueId: string, data: UpdateShoppingListRequest): Observable<ShoppingList> {\n return from(this.ensureConfigured().shoppingLists.update(uniqueId, data));\n }\n\n deleteShoppingList(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().shoppingLists.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Promotions Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listProductPromotions(params?: ListProductPromotionsParams): Observable<PageResult<ProductPromotion>> {\n return from(this.ensureConfigured().promotions.list(params));\n }\n\n getProductPromotion(uniqueId: string): Observable<ProductPromotion> {\n return from(this.ensureConfigured().promotions.get(uniqueId));\n }\n\n createProductPromotion(data: CreateProductPromotionRequest): Observable<ProductPromotion> {\n return from(this.ensureConfigured().promotions.create(data));\n }\n\n updateProductPromotion(uniqueId: string, data: UpdateProductPromotionRequest): Observable<ProductPromotion> {\n return from(this.ensureConfigured().promotions.update(uniqueId, data));\n }\n\n deleteProductPromotion(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().promotions.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Prices Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listProductPrices(params?: ListProductPricesParams): Observable<PageResult<ProductPrice>> {\n return from(this.ensureConfigured().prices.list(params));\n }\n\n getProductPrice(uniqueId: string): Observable<ProductPrice> {\n return from(this.ensureConfigured().prices.get(uniqueId));\n }\n\n createProductPrice(data: CreateProductPriceRequest): Observable<ProductPrice> {\n return from(this.ensureConfigured().prices.create(data));\n }\n\n updateProductPrice(uniqueId: string, data: UpdateProductPriceRequest): Observable<ProductPrice> {\n return from(this.ensureConfigured().prices.update(uniqueId, data));\n }\n\n deleteProductPrice(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().prices.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Filters Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listProductFilters(params?: ListProductFiltersParams): Observable<PageResult<ProductFilter>> {\n return from(this.ensureConfigured().filters.list(params));\n }\n\n getProductFilter(uniqueId: string): Observable<ProductFilter> {\n return from(this.ensureConfigured().filters.get(uniqueId));\n }\n\n createProductFilter(data: CreateProductFilterRequest): Observable<ProductFilter> {\n return from(this.ensureConfigured().filters.create(data));\n }\n\n updateProductFilter(uniqueId: string, data: UpdateProductFilterRequest): Observable<ProductFilter> {\n return from(this.ensureConfigured().filters.update(uniqueId, data));\n }\n\n deleteProductFilter(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().filters.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Addons Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listAddons(productUniqueId: string): Observable<Product[]> {\n return from(this.ensureConfigured().addons.list(productUniqueId));\n }\n\n addAddon(productUniqueId: string, addonProductUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().addons.add(productUniqueId, addonProductUniqueId));\n }\n\n removeAddon(productUniqueId: string, addonUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().addons.remove(productUniqueId, addonUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // My Carts Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getMyCart(uniqueId: string): Observable<Cart> {\n return from(this.ensureConfigured().myCarts.get(uniqueId));\n }\n\n createMyCart(): Observable<Cart> {\n return from(this.ensureConfigured().myCarts.create());\n }\n\n updateMyCart(uniqueId: string, data: UpdateMyCartRequest): Observable<Cart> {\n return from(this.ensureConfigured().myCarts.update(uniqueId, data));\n }\n\n addToMyCart(data: AddToMyCartRequest): Observable<Cart> {\n return from(this.ensureConfigured().myCarts.addToCart(data));\n }\n\n checkoutMyCart(uniqueId: string): Observable<Cart> {\n return from(this.ensureConfigured().myCarts.checkout(uniqueId));\n }\n\n orderAllMyCart(uniqueId: string): Observable<Cart> {\n return from(this.ensureConfigured().myCarts.orderAll(uniqueId));\n }\n\n cancelAllMyCart(uniqueId: string): Observable<Cart> {\n return from(this.ensureConfigured().myCarts.cancelAll(uniqueId));\n }\n\n deleteMyCart(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().myCarts.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Remarketing Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getAbandonedCarts(params?: AbandonedCartsParams): Observable<{ carts: AbandonedCart[]; total: number }> {\n return from(this.ensureConfigured().remarketing.getAbandonedCarts(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Visitors Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n createVisitor(data: CreateVisitorRequest): Observable<Visitor> {\n return from(this.ensureConfigured().visitors.create(data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Product Vendors Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List vendors for a product\n */\n listProductVendors(productUniqueId: string, params?: ListProductVendorsParams): Observable<PageResult<ProductVendor>> {\n return from(this.ensureConfigured().productVendors.listByProduct(productUniqueId, params));\n }\n\n /**\n * Get the primary vendor for a product\n */\n getPrimaryProductVendor(productUniqueId: string): Observable<ProductVendor | null> {\n return from(this.ensureConfigured().productVendors.getPrimaryVendor(productUniqueId));\n }\n\n /**\n * Get available vendors for a product\n */\n getAvailableProductVendors(productUniqueId: string, params?: ListProductVendorsParams): Observable<PageResult<ProductVendor>> {\n return from(this.ensureConfigured().productVendors.getAvailableVendors(productUniqueId, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get productsBlock(): ProductsBlock {\n return this.ensureConfigured();\n }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createCrmBlock,\n type CrmBlock,\n type CrmBlockConfig,\n // Account types\n type Account,\n type AccountDetail,\n type CreateAccountRequest,\n type UpdateAccountRequest,\n type ListAccountsParams,\n // Contact types\n type Contact,\n type ContactProfile,\n type CreateContactRequest,\n type UpdateContactRequest,\n type ListContactsParams,\n // Contact Event types\n type ContactEvent,\n type CreateContactEventRequest,\n type UpdateContactEventRequest,\n type ListContactEventsParams,\n type ConfirmationRequest,\n type CheckinRequest,\n type CheckoutRequest,\n type EventNotesRequest,\n // Lead types\n type Lead,\n type CreateLeadRequest,\n type UpdateLeadRequest,\n type ListLeadsParams,\n // Lead Follow types\n type LeadFollow,\n type CreateLeadFollowRequest,\n type UpdateLeadFollowRequest,\n type ListLeadFollowsParams,\n // Opportunity types\n type Opportunity,\n type CreateOpportunityRequest,\n type UpdateOpportunityRequest,\n type ListOpportunitiesParams,\n // Meeting types\n type Meeting,\n type CreateMeetingRequest,\n type UpdateMeetingRequest,\n type ListMeetingsParams,\n // Meeting Participant types\n type MeetingParticipant,\n type CreateMeetingParticipantRequest,\n type ListMeetingParticipantsParams,\n // Meeting Billing types\n type MeetingBilling,\n type CreateMeetingBillingRequest,\n type UpdateMeetingBillingRequest,\n type ListMeetingBillingsParams,\n type PaymentSplit,\n type EapSession,\n type OutstandingByPayer,\n type BillingRevenueReport,\n type BillingAgingReport,\n type BillingParticipantReport,\n // Quote types\n type Quote,\n type CreateQuoteRequest,\n type UpdateQuoteRequest,\n type ListQuotesParams,\n // Subscriber types\n type Subscriber,\n type CreateSubscriberRequest,\n type UpdateSubscriberRequest,\n type ListSubscribersParams,\n // Referral types\n type Referral,\n type CreateReferralRequest,\n type UpdateReferralRequest,\n type ListReferralsParams,\n // Touch types\n type Touch,\n type CreateTouchRequest,\n type UpdateTouchRequest,\n type ListTouchesParams,\n // Category types\n type Category,\n type CreateCategoryRequest,\n type UpdateCategoryRequest,\n type ListCategoriesParams,\n // Calendar Account types\n type CalendarAccount,\n type CreateCalendarAccountRequest,\n type UpdateCalendarAccountRequest,\n type ListCalendarAccountsParams,\n type SyncCalendarRequest,\n type SyncCalendarResponse,\n // Busy Block types\n type BusyBlock,\n type CreateBusyBlockRequest,\n type ListBusyBlocksParams,\n // ICS Token types\n type IcsToken,\n type CreateIcsTokenRequest,\n type ListIcsTokensParams,\n // Zoom Meeting types\n type ZoomMeeting,\n type ZoomAvailability,\n type ProvisionZoomMeetingRequest,\n type UpdateZoomMeetingRequest,\n // Zoom Host types\n type ZoomHost,\n type ZoomHostAvailability,\n type ZoomHostAllocation,\n type AvailableUser,\n type CreateZoomHostRequest,\n type UpdateZoomHostRequest,\n type ListZoomHostsParams,\n // Mail Template types\n type CrmMailTemplate,\n type CreateCrmMailTemplateRequest,\n type UpdateCrmMailTemplateRequest,\n type ListCrmMailTemplatesParams,\n type CreateMandrillTemplateRequest,\n type UpdateMandrillTemplateRequest,\n type MandrillTemplateStats,\n // Communication types\n type UnsubscribeRequest,\n type UnsubscribeResponse,\n // CRM User types\n type CrmUser,\n type RegisterCrmUserRequest,\n type ListCrmUsersParams,\n // Billing Report types\n type BillingReportParams,\n type RevenueReport,\n type AgingReport,\n type ParticipantBillingReport,\n // Calendar Sync types\n type CalendarSyncResult,\n} from '@23blocks/block-crm';\nimport { TRANSPORT, CRM_TRANSPORT, CRM_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the CRM block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class AccountsComponent {\n * constructor(private crm: CrmService) {}\n *\n * loadAccounts() {\n * this.crm.listAccounts({ page: 1, perPage: 20 }).subscribe({\n * next: (result) => console.log('Accounts:', result.data),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\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 /**\n * Ensure the service is configured, throw helpful error if not\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 // ─────────────────────────────────────────────────────────────────────────────\n // Accounts Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listAccounts(params?: ListAccountsParams): Observable<PageResult<Account>> {\n return from(this.ensureConfigured().accounts.list(params));\n }\n\n getAccount(uniqueId: string): Observable<Account> {\n return from(this.ensureConfigured().accounts.get(uniqueId));\n }\n\n createAccount(data: CreateAccountRequest): Observable<Account> {\n return from(this.ensureConfigured().accounts.create(data));\n }\n\n updateAccount(uniqueId: string, data: UpdateAccountRequest): Observable<Account> {\n return from(this.ensureConfigured().accounts.update(uniqueId, data));\n }\n\n deleteAccount(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().accounts.delete(uniqueId));\n }\n\n recoverAccount(uniqueId: string): Observable<Account> {\n return from(this.ensureConfigured().accounts.recover(uniqueId));\n }\n\n searchAccounts(query: string, params?: ListAccountsParams): Observable<PageResult<Account>> {\n return from(this.ensureConfigured().accounts.search(query, params));\n }\n\n listDeletedAccounts(params?: ListAccountsParams): Observable<PageResult<Account>> {\n return from(this.ensureConfigured().accounts.listDeleted(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Contacts Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listContacts(params?: ListContactsParams): Observable<PageResult<Contact>> {\n return from(this.ensureConfigured().contacts.list(params));\n }\n\n getContact(uniqueId: string): Observable<Contact> {\n return from(this.ensureConfigured().contacts.get(uniqueId));\n }\n\n createContact(data: CreateContactRequest): Observable<Contact> {\n return from(this.ensureConfigured().contacts.create(data));\n }\n\n updateContact(uniqueId: string, data: UpdateContactRequest): Observable<Contact> {\n return from(this.ensureConfigured().contacts.update(uniqueId, data));\n }\n\n deleteContact(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().contacts.delete(uniqueId));\n }\n\n recoverContact(uniqueId: string): Observable<Contact> {\n return from(this.ensureConfigured().contacts.recover(uniqueId));\n }\n\n searchContacts(query: string, params?: ListContactsParams): Observable<PageResult<Contact>> {\n return from(this.ensureConfigured().contacts.search(query, params));\n }\n\n listDeletedContacts(params?: ListContactsParams): Observable<PageResult<Contact>> {\n return from(this.ensureConfigured().contacts.listDeleted(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Contact Events Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listContactEvents(params?: ListContactEventsParams): Observable<PageResult<ContactEvent>> {\n return from(this.ensureConfigured().contactEvents.list(params));\n }\n\n getContactEvent(uniqueId: string): Observable<ContactEvent> {\n return from(this.ensureConfigured().contactEvents.get(uniqueId));\n }\n\n createContactEvent(data: CreateContactEventRequest): Observable<ContactEvent> {\n return from(this.ensureConfigured().contactEvents.create(data));\n }\n\n updateContactEvent(uniqueId: string, data: UpdateContactEventRequest): Observable<ContactEvent> {\n return from(this.ensureConfigured().contactEvents.update(uniqueId, data));\n }\n\n deleteContactEvent(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().contactEvents.delete(uniqueId));\n }\n\n studentConfirmation(uniqueId: string, request?: ConfirmationRequest): Observable<ContactEvent> {\n return from(this.ensureConfigured().contactEvents.studentConfirmation(uniqueId, request));\n }\n\n studentCheckin(uniqueId: string, request?: CheckinRequest): Observable<ContactEvent> {\n return from(this.ensureConfigured().contactEvents.studentCheckin(uniqueId, request));\n }\n\n teacherConfirmation(uniqueId: string, request?: ConfirmationRequest): Observable<ContactEvent> {\n return from(this.ensureConfigured().contactEvents.teacherConfirmation(uniqueId, request));\n }\n\n teacherCheckin(uniqueId: string, request?: CheckinRequest): Observable<ContactEvent> {\n return from(this.ensureConfigured().contactEvents.teacherCheckin(uniqueId, request));\n }\n\n checkout(uniqueId: string, request?: CheckoutRequest): Observable<ContactEvent> {\n return from(this.ensureConfigured().contactEvents.checkout(uniqueId, request));\n }\n\n checkoutStudent(uniqueId: string, request?: CheckoutRequest): Observable<ContactEvent> {\n return from(this.ensureConfigured().contactEvents.checkoutStudent(uniqueId, request));\n }\n\n studentNotes(uniqueId: string, request: EventNotesRequest): Observable<ContactEvent> {\n return from(this.ensureConfigured().contactEvents.studentNotes(uniqueId, request));\n }\n\n adminNotes(uniqueId: string, request: EventNotesRequest): Observable<ContactEvent> {\n return from(this.ensureConfigured().contactEvents.adminNotes(uniqueId, request));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Leads Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listLeads(params?: ListLeadsParams): Observable<PageResult<Lead>> {\n return from(this.ensureConfigured().leads.list(params));\n }\n\n getLead(uniqueId: string): Observable<Lead> {\n return from(this.ensureConfigured().leads.get(uniqueId));\n }\n\n createLead(data: CreateLeadRequest): Observable<Lead> {\n return from(this.ensureConfigured().leads.create(data));\n }\n\n updateLead(uniqueId: string, data: UpdateLeadRequest): Observable<Lead> {\n return from(this.ensureConfigured().leads.update(uniqueId, data));\n }\n\n deleteLead(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().leads.delete(uniqueId));\n }\n\n recoverLead(uniqueId: string): Observable<Lead> {\n return from(this.ensureConfigured().leads.recover(uniqueId));\n }\n\n searchLeads(query: string, params?: ListLeadsParams): Observable<PageResult<Lead>> {\n return from(this.ensureConfigured().leads.search(query, params));\n }\n\n listDeletedLeads(params?: ListLeadsParams): Observable<PageResult<Lead>> {\n return from(this.ensureConfigured().leads.listDeleted(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Lead Follows Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listLeadFollows(leadUniqueId: string, params?: ListLeadFollowsParams): Observable<PageResult<LeadFollow>> {\n return from(this.ensureConfigured().leadFollows.list(leadUniqueId, params));\n }\n\n getLeadFollow(leadUniqueId: string, followUniqueId: string): Observable<LeadFollow> {\n return from(this.ensureConfigured().leadFollows.get(leadUniqueId, followUniqueId));\n }\n\n createLeadFollow(leadUniqueId: string, data: CreateLeadFollowRequest): Observable<LeadFollow> {\n return from(this.ensureConfigured().leadFollows.create(leadUniqueId, data));\n }\n\n updateLeadFollow(leadUniqueId: string, followUniqueId: string, data: UpdateLeadFollowRequest): Observable<LeadFollow> {\n return from(this.ensureConfigured().leadFollows.update(leadUniqueId, followUniqueId, data));\n }\n\n deleteLeadFollow(leadUniqueId: string, followUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().leadFollows.delete(leadUniqueId, followUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Opportunities Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listOpportunities(params?: ListOpportunitiesParams): Observable<PageResult<Opportunity>> {\n return from(this.ensureConfigured().opportunities.list(params));\n }\n\n getOpportunity(uniqueId: string): Observable<Opportunity> {\n return from(this.ensureConfigured().opportunities.get(uniqueId));\n }\n\n createOpportunity(data: CreateOpportunityRequest): Observable<Opportunity> {\n return from(this.ensureConfigured().opportunities.create(data));\n }\n\n updateOpportunity(uniqueId: string, data: UpdateOpportunityRequest): Observable<Opportunity> {\n return from(this.ensureConfigured().opportunities.update(uniqueId, data));\n }\n\n deleteOpportunity(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().opportunities.delete(uniqueId));\n }\n\n recoverOpportunity(uniqueId: string): Observable<Opportunity> {\n return from(this.ensureConfigured().opportunities.recover(uniqueId));\n }\n\n searchOpportunities(query: string, params?: ListOpportunitiesParams): Observable<PageResult<Opportunity>> {\n return from(this.ensureConfigured().opportunities.search(query, params));\n }\n\n listDeletedOpportunities(params?: ListOpportunitiesParams): Observable<PageResult<Opportunity>> {\n return from(this.ensureConfigured().opportunities.listDeleted(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Meetings Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listMeetings(params?: ListMeetingsParams): Observable<PageResult<Meeting>> {\n return from(this.ensureConfigured().meetings.list(params));\n }\n\n getMeeting(uniqueId: string): Observable<Meeting> {\n return from(this.ensureConfigured().meetings.get(uniqueId));\n }\n\n createMeeting(data: CreateMeetingRequest): Observable<Meeting> {\n return from(this.ensureConfigured().meetings.create(data));\n }\n\n updateMeeting(uniqueId: string, data: UpdateMeetingRequest): Observable<Meeting> {\n return from(this.ensureConfigured().meetings.update(uniqueId, data));\n }\n\n deleteMeeting(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().meetings.delete(uniqueId));\n }\n\n recoverMeeting(uniqueId: string): Observable<Meeting> {\n return from(this.ensureConfigured().meetings.recover(uniqueId));\n }\n\n searchMeetings(query: string, params?: ListMeetingsParams): Observable<PageResult<Meeting>> {\n return from(this.ensureConfigured().meetings.search(query, params));\n }\n\n listDeletedMeetings(params?: ListMeetingsParams): Observable<PageResult<Meeting>> {\n return from(this.ensureConfigured().meetings.listDeleted(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Meeting Participants Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listMeetingParticipants(meetingUniqueId: string, params?: ListMeetingParticipantsParams): Observable<PageResult<MeetingParticipant>> {\n return from(this.ensureConfigured().meetingParticipants.list(meetingUniqueId, params));\n }\n\n createMeetingParticipant(meetingUniqueId: string, data: CreateMeetingParticipantRequest): Observable<MeetingParticipant> {\n return from(this.ensureConfigured().meetingParticipants.create(meetingUniqueId, data));\n }\n\n deleteMeetingParticipant(meetingUniqueId: string, participantUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().meetingParticipants.delete(meetingUniqueId, participantUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Meeting Billings Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listMeetingBillings(meetingUniqueId: string, params?: ListMeetingBillingsParams): Observable<PageResult<MeetingBilling>> {\n return from(this.ensureConfigured().meetingBillings.list(meetingUniqueId, params));\n }\n\n getMeetingBilling(uniqueId: string): Observable<MeetingBilling> {\n return from(this.ensureConfigured().meetingBillings.get(uniqueId));\n }\n\n createMeetingBilling(meetingUniqueId: string, data: CreateMeetingBillingRequest): Observable<MeetingBilling> {\n return from(this.ensureConfigured().meetingBillings.create(meetingUniqueId, data));\n }\n\n updateMeetingBilling(uniqueId: string, data: UpdateMeetingBillingRequest): Observable<MeetingBilling> {\n return from(this.ensureConfigured().meetingBillings.update(uniqueId, data));\n }\n\n deleteMeetingBilling(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().meetingBillings.delete(uniqueId));\n }\n\n getPaymentSplit(uniqueId: string): Observable<PaymentSplit[]> {\n return from(this.ensureConfigured().meetingBillings.getPaymentSplit(uniqueId));\n }\n\n getEapSessions(participantEmail: string, payerName: string): Observable<EapSession> {\n return from(this.ensureConfigured().meetingBillings.getEapSessions(participantEmail, payerName));\n }\n\n getOutstandingByPayer(): Observable<OutstandingByPayer[]> {\n return from(this.ensureConfigured().meetingBillings.getOutstandingByPayer());\n }\n\n getBillingRevenueReport(): Observable<BillingRevenueReport> {\n return from(this.ensureConfigured().meetingBillings.getRevenueReport());\n }\n\n getBillingAgingReport(): Observable<BillingAgingReport> {\n return from(this.ensureConfigured().meetingBillings.getAgingReport());\n }\n\n getBillingParticipantReport(participantEmail: string): Observable<BillingParticipantReport> {\n return from(this.ensureConfigured().meetingBillings.getParticipantReport(participantEmail));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Quotes Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listQuotes(params?: ListQuotesParams): Observable<PageResult<Quote>> {\n return from(this.ensureConfigured().quotes.list(params));\n }\n\n getQuote(uniqueId: string): Observable<Quote> {\n return from(this.ensureConfigured().quotes.get(uniqueId));\n }\n\n createQuote(data: CreateQuoteRequest): Observable<Quote> {\n return from(this.ensureConfigured().quotes.create(data));\n }\n\n updateQuote(uniqueId: string, data: UpdateQuoteRequest): Observable<Quote> {\n return from(this.ensureConfigured().quotes.update(uniqueId, data));\n }\n\n deleteQuote(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().quotes.delete(uniqueId));\n }\n\n recoverQuote(uniqueId: string): Observable<Quote> {\n return from(this.ensureConfigured().quotes.recover(uniqueId));\n }\n\n searchQuotes(query: string, params?: ListQuotesParams): Observable<PageResult<Quote>> {\n return from(this.ensureConfigured().quotes.search(query, params));\n }\n\n listDeletedQuotes(params?: ListQuotesParams): Observable<PageResult<Quote>> {\n return from(this.ensureConfigured().quotes.listDeleted(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Subscribers Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listSubscribers(params?: ListSubscribersParams): Observable<PageResult<Subscriber>> {\n return from(this.ensureConfigured().subscribers.list(params));\n }\n\n getSubscriber(uniqueId: string): Observable<Subscriber> {\n return from(this.ensureConfigured().subscribers.get(uniqueId));\n }\n\n createSubscriber(data: CreateSubscriberRequest): Observable<Subscriber> {\n return from(this.ensureConfigured().subscribers.create(data));\n }\n\n updateSubscriber(uniqueId: string, data: UpdateSubscriberRequest): Observable<Subscriber> {\n return from(this.ensureConfigured().subscribers.update(uniqueId, data));\n }\n\n deleteSubscriber(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().subscribers.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Referrals Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listReferrals(params?: ListReferralsParams): Observable<PageResult<Referral>> {\n return from(this.ensureConfigured().referrals.list(params));\n }\n\n getReferral(uniqueId: string): Observable<Referral> {\n return from(this.ensureConfigured().referrals.get(uniqueId));\n }\n\n createReferral(data: CreateReferralRequest): Observable<Referral> {\n return from(this.ensureConfigured().referrals.create(data));\n }\n\n updateReferral(uniqueId: string, data: UpdateReferralRequest): Observable<Referral> {\n return from(this.ensureConfigured().referrals.update(uniqueId, data));\n }\n\n deleteReferral(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().referrals.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Touches Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listTouches(params?: ListTouchesParams): Observable<PageResult<Touch>> {\n return from(this.ensureConfigured().touches.list(params));\n }\n\n getTouch(uniqueId: string): Observable<Touch> {\n return from(this.ensureConfigured().touches.get(uniqueId));\n }\n\n createTouch(data: CreateTouchRequest): Observable<Touch> {\n return from(this.ensureConfigured().touches.create(data));\n }\n\n updateTouch(uniqueId: string, data: UpdateTouchRequest): Observable<Touch> {\n return from(this.ensureConfigured().touches.update(uniqueId, data));\n }\n\n deleteTouch(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().touches.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Categories Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCategories(params?: ListCategoriesParams): Observable<PageResult<Category>> {\n return from(this.ensureConfigured().categories.list(params));\n }\n\n getCategory(uniqueId: string): Observable<Category> {\n return from(this.ensureConfigured().categories.get(uniqueId));\n }\n\n createCategory(data: CreateCategoryRequest): Observable<Category> {\n return from(this.ensureConfigured().categories.create(data));\n }\n\n updateCategory(uniqueId: string, data: UpdateCategoryRequest): Observable<Category> {\n return from(this.ensureConfigured().categories.update(uniqueId, data));\n }\n\n deleteCategory(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().categories.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Calendar Accounts Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCalendarAccounts(userUniqueId: string, params?: ListCalendarAccountsParams): Observable<PageResult<CalendarAccount>> {\n return from(this.ensureConfigured().calendarAccounts.list(userUniqueId, params));\n }\n\n getCalendarAccount(userUniqueId: string, id: string): Observable<CalendarAccount> {\n return from(this.ensureConfigured().calendarAccounts.get(userUniqueId, id));\n }\n\n createCalendarAccount(userUniqueId: string, data: CreateCalendarAccountRequest): Observable<CalendarAccount> {\n return from(this.ensureConfigured().calendarAccounts.create(userUniqueId, data));\n }\n\n updateCalendarAccount(userUniqueId: string, id: string, data: UpdateCalendarAccountRequest): Observable<CalendarAccount> {\n return from(this.ensureConfigured().calendarAccounts.update(userUniqueId, id, data));\n }\n\n deleteCalendarAccount(userUniqueId: string, id: string): Observable<void> {\n return from(this.ensureConfigured().calendarAccounts.delete(userUniqueId, id));\n }\n\n syncUserCalendar(userUniqueId: string, request?: SyncCalendarRequest): Observable<SyncCalendarResponse> {\n return from(this.ensureConfigured().calendarAccounts.syncUser(userUniqueId, request));\n }\n\n syncTenantCalendar(request?: SyncCalendarRequest): Observable<SyncCalendarResponse> {\n return from(this.ensureConfigured().calendarAccounts.syncTenant(request));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Busy Blocks Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listBusyBlocks(userUniqueId: string, params?: ListBusyBlocksParams): Observable<PageResult<BusyBlock>> {\n return from(this.ensureConfigured().busyBlocks.list(userUniqueId, params));\n }\n\n createBusyBlock(userUniqueId: string, data: CreateBusyBlockRequest): Observable<BusyBlock> {\n return from(this.ensureConfigured().busyBlocks.create(userUniqueId, data));\n }\n\n deleteBusyBlock(userUniqueId: string, id: string): Observable<void> {\n return from(this.ensureConfigured().busyBlocks.delete(userUniqueId, id));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // ICS Tokens Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listIcsTokens(userUniqueId: string, params?: ListIcsTokensParams): Observable<PageResult<IcsToken>> {\n return from(this.ensureConfigured().icsTokens.list(userUniqueId, params));\n }\n\n createIcsToken(userUniqueId: string, data: CreateIcsTokenRequest): Observable<IcsToken> {\n return from(this.ensureConfigured().icsTokens.create(userUniqueId, data));\n }\n\n deleteIcsToken(userUniqueId: string, id: string): Observable<void> {\n return from(this.ensureConfigured().icsTokens.delete(userUniqueId, id));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Zoom Meetings Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getZoomMeeting(userUniqueId: string, meetingUniqueId: string): Observable<ZoomMeeting> {\n return from(this.ensureConfigured().zoomMeetings.get(userUniqueId, meetingUniqueId));\n }\n\n provisionZoomMeeting(userUniqueId: string, meetingUniqueId: string, request?: ProvisionZoomMeetingRequest): Observable<ZoomMeeting> {\n return from(this.ensureConfigured().zoomMeetings.provision(userUniqueId, meetingUniqueId, request));\n }\n\n updateZoomMeeting(userUniqueId: string, meetingUniqueId: string, request: UpdateZoomMeetingRequest): Observable<ZoomMeeting> {\n return from(this.ensureConfigured().zoomMeetings.update(userUniqueId, meetingUniqueId, request));\n }\n\n cancelZoomMeeting(userUniqueId: string, meetingUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().zoomMeetings.cancel(userUniqueId, meetingUniqueId));\n }\n\n checkZoomAvailability(userUniqueId: string): Observable<ZoomAvailability> {\n return from(this.ensureConfigured().zoomMeetings.checkAvailability(userUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Zoom Hosts Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listZoomHosts(params?: ListZoomHostsParams): Observable<PageResult<ZoomHost>> {\n return from(this.ensureConfigured().zoomHosts.list(params));\n }\n\n getZoomHost(uniqueId: string): Observable<ZoomHost> {\n return from(this.ensureConfigured().zoomHosts.get(uniqueId));\n }\n\n createZoomHost(data: CreateZoomHostRequest): Observable<ZoomHost> {\n return from(this.ensureConfigured().zoomHosts.create(data));\n }\n\n updateZoomHost(uniqueId: string, data: UpdateZoomHostRequest): Observable<ZoomHost> {\n return from(this.ensureConfigured().zoomHosts.update(uniqueId, data));\n }\n\n deleteZoomHost(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().zoomHosts.delete(uniqueId));\n }\n\n getZoomHostAvailability(uniqueId: string): Observable<ZoomHostAvailability> {\n return from(this.ensureConfigured().zoomHosts.getAvailability(uniqueId));\n }\n\n getZoomHostAllocations(uniqueId: string): Observable<ZoomHostAllocation[]> {\n return from(this.ensureConfigured().zoomHosts.getAllocations(uniqueId));\n }\n\n getAvailableZoomUsers(): Observable<AvailableUser[]> {\n return from(this.ensureConfigured().zoomHosts.getAvailableUsers());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Mail Templates Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listMailTemplates(params?: ListCrmMailTemplatesParams): Observable<PageResult<CrmMailTemplate>> {\n return from(this.ensureConfigured().mailTemplates.list(params));\n }\n\n getMailTemplate(uniqueId: string): Observable<CrmMailTemplate> {\n return from(this.ensureConfigured().mailTemplates.get(uniqueId));\n }\n\n createMailTemplate(data: CreateCrmMailTemplateRequest): Observable<CrmMailTemplate> {\n return from(this.ensureConfigured().mailTemplates.create(data));\n }\n\n updateMailTemplate(uniqueId: string, data: UpdateCrmMailTemplateRequest): Observable<CrmMailTemplate> {\n return from(this.ensureConfigured().mailTemplates.update(uniqueId, data));\n }\n\n getMandrillStats(uniqueId: string): Observable<MandrillTemplateStats> {\n return from(this.ensureConfigured().mailTemplates.getMandrillStats(uniqueId));\n }\n\n createMandrillTemplate(uniqueId: string, data: CreateMandrillTemplateRequest): Observable<CrmMailTemplate> {\n return from(this.ensureConfigured().mailTemplates.createMandrillTemplate(uniqueId, data));\n }\n\n updateMandrillTemplate(uniqueId: string, data: UpdateMandrillTemplateRequest): Observable<CrmMailTemplate> {\n return from(this.ensureConfigured().mailTemplates.updateMandrillTemplate(uniqueId, data));\n }\n\n publishMandrill(uniqueId: string): Observable<CrmMailTemplate> {\n return from(this.ensureConfigured().mailTemplates.publishMandrill(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Communications Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n unsubscribe(data: UnsubscribeRequest): Observable<UnsubscribeResponse> {\n return from(this.ensureConfigured().communications.unsubscribe(data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // CRM Users Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCrmUsers(params?: ListCrmUsersParams): Observable<PageResult<CrmUser>> {\n return from(this.ensureConfigured().users.list(params));\n }\n\n getCrmUser(uniqueId: string): Observable<CrmUser> {\n return from(this.ensureConfigured().users.get(uniqueId));\n }\n\n registerCrmUser(uniqueId: string, data: RegisterCrmUserRequest): Observable<CrmUser> {\n return from(this.ensureConfigured().users.register(uniqueId, data));\n }\n\n deleteCrmUser(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().users.delete(uniqueId));\n }\n\n getCrmUserContacts(uniqueId: string): Observable<Contact[]> {\n return from(this.ensureConfigured().users.getContacts(uniqueId));\n }\n\n getCrmUserMeetings(uniqueId: string): Observable<Meeting[]> {\n return from(this.ensureConfigured().users.getMeetings(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Billing Reports Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getRevenueReport(params?: BillingReportParams): Observable<RevenueReport> {\n return from(this.ensureConfigured().billingReports.getRevenueReport(params));\n }\n\n getAgingReport(): Observable<AgingReport> {\n return from(this.ensureConfigured().billingReports.getAgingReport());\n }\n\n getParticipantBillingReport(participantEmail: string): Observable<ParticipantBillingReport> {\n return from(this.ensureConfigured().billingReports.getParticipantReport(participantEmail));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Calendar Sync Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n syncCalendarUser(userUniqueId: string): Observable<CalendarSyncResult> {\n return from(this.ensureConfigured().calendarSync.syncUser(userUniqueId));\n }\n\n syncCalendarTenant(): Observable<CalendarSyncResult> {\n return from(this.ensureConfigured().calendarSync.syncTenant());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get crmBlock(): CrmBlock {\n return this.ensureConfigured();\n }\n}\n","// @ts-nocheck\nimport { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createContentBlock,\n type ContentBlock,\n type ContentBlockConfig,\n type Post,\n type CreatePostRequest,\n type UpdatePostRequest,\n type ListPostsParams,\n type Comment,\n type CreateCommentRequest,\n type UpdateCommentRequest,\n type ListCommentsParams,\n type Category,\n type CreateCategoryRequest,\n type UpdateCategoryRequest,\n type ListCategoriesParams,\n type Tag,\n type CreateTagRequest,\n type UpdateTagRequest,\n type ListTagsParams,\n type ContentUser,\n type RegisterContentUserRequest,\n type UpdateContentUserRequest,\n type ListContentUsersParams,\n type UserActivity,\n // Moderation types\n type ModerationResult,\n type ModerateContentRequest,\n type ContentFlag,\n type CreateContentFlagRequest,\n type ListContentFlagsParams,\n // Activity types\n type Activity,\n type ListActivitiesParams,\n // Series types\n type Series,\n type CreateSeriesRequest,\n type UpdateSeriesRequest,\n type ListSeriesParams,\n type QuerySeriesParams,\n type ReorderPostsRequest,\n} from '@23blocks/block-content';\nimport { TRANSPORT, CONTENT_TRANSPORT, CONTENT_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Content block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class BlogComponent {\n * constructor(private content: ContentService) {}\n *\n * loadPosts() {\n * this.content.listPosts({ page: 1, perPage: 10 }).subscribe({\n * next: (result) => console.log('Posts:', result.data),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\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 /**\n * Ensure the service is configured, throw helpful error if not\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 // ───────────────────────────────────────────────────────────────────────────\n // Posts Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listPosts(params?: ListPostsParams): Observable<PageResult<Post>> {\n return from(this.ensureConfigured().posts.list(params));\n }\n\n getPost(uniqueId: string): Observable<Post> {\n return from(this.ensureConfigured().posts.get(uniqueId));\n }\n\n createPost(data: CreatePostRequest): Observable<Post> {\n return from(this.ensureConfigured().posts.create(data));\n }\n\n updatePost(uniqueId: string, data: UpdatePostRequest): Observable<Post> {\n return from(this.ensureConfigured().posts.update(uniqueId, data));\n }\n\n deletePost(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().posts.delete(uniqueId));\n }\n\n recoverPost(uniqueId: string): Observable<Post> {\n return from(this.ensureConfigured().posts.recover(uniqueId));\n }\n\n searchPosts(query: string, params?: ListPostsParams): Observable<PageResult<Post>> {\n return from(this.ensureConfigured().posts.search(query, params));\n }\n\n listDeletedPosts(params?: ListPostsParams): Observable<PageResult<Post>> {\n return from(this.ensureConfigured().posts.listDeleted(params));\n }\n\n likePost(uniqueId: string): Observable<Post> {\n return from(this.ensureConfigured().posts.like(uniqueId));\n }\n\n dislikePost(uniqueId: string): Observable<Post> {\n return from(this.ensureConfigured().posts.dislike(uniqueId));\n }\n\n savePost(uniqueId: string): Observable<Post> {\n return from(this.ensureConfigured().posts.save(uniqueId));\n }\n\n followPost(uniqueId: string): Observable<Post> {\n return from(this.ensureConfigured().posts.follow(uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Comments Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listComments(params?: ListCommentsParams): Observable<PageResult<Comment>> {\n return from(this.ensureConfigured().comments.list(params));\n }\n\n getComment(uniqueId: string): Observable<Comment> {\n return from(this.ensureConfigured().comments.get(uniqueId));\n }\n\n createComment(data: CreateCommentRequest): Observable<Comment> {\n return from(this.ensureConfigured().comments.create(data));\n }\n\n updateComment(uniqueId: string, data: UpdateCommentRequest): Observable<Comment> {\n return from(this.ensureConfigured().comments.update(uniqueId, data));\n }\n\n deleteComment(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().comments.delete(uniqueId));\n }\n\n likeComment(uniqueId: string): Observable<Comment> {\n return from(this.ensureConfigured().comments.like(uniqueId));\n }\n\n dislikeComment(uniqueId: string): Observable<Comment> {\n return from(this.ensureConfigured().comments.dislike(uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Categories Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listCategories(params?: ListCategoriesParams): Observable<PageResult<Category>> {\n return from(this.ensureConfigured().categories.list(params));\n }\n\n getCategory(uniqueId: string): Observable<Category> {\n return from(this.ensureConfigured().categories.get(uniqueId));\n }\n\n createCategory(data: CreateCategoryRequest): Observable<Category> {\n return from(this.ensureConfigured().categories.create(data));\n }\n\n updateCategory(uniqueId: string, data: UpdateCategoryRequest): Observable<Category> {\n return from(this.ensureConfigured().categories.update(uniqueId, data));\n }\n\n deleteCategory(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().categories.delete(uniqueId));\n }\n\n recoverCategory(uniqueId: string): Observable<Category> {\n return from(this.ensureConfigured().categories.recover(uniqueId));\n }\n\n getCategoryChildren(uniqueId: string): Observable<Category[]> {\n return from(this.ensureConfigured().categories.getChildren(uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Tags Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listTags(params?: ListTagsParams): Observable<PageResult<Tag>> {\n return from(this.ensureConfigured().tags.list(params));\n }\n\n getTag(uniqueId: string): Observable<Tag> {\n return from(this.ensureConfigured().tags.get(uniqueId));\n }\n\n createTag(data: CreateTagRequest): Observable<Tag> {\n return from(this.ensureConfigured().tags.create(data));\n }\n\n updateTag(uniqueId: string, data: UpdateTagRequest): Observable<Tag> {\n return from(this.ensureConfigured().tags.update(uniqueId, data));\n }\n\n deleteTag(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().tags.delete(uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Users Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listContentUsers(params?: ListContentUsersParams): Observable<PageResult<ContentUser>> {\n return from(this.ensureConfigured().users.list(params));\n }\n\n getContentUser(uniqueId: string): Observable<ContentUser> {\n return from(this.ensureConfigured().users.get(uniqueId));\n }\n\n registerContentUser(uniqueId: string, data: RegisterContentUserRequest): Observable<ContentUser> {\n return from(this.ensureConfigured().users.register(uniqueId, data));\n }\n\n updateContentUser(uniqueId: string, data: UpdateContentUserRequest): Observable<ContentUser> {\n return from(this.ensureConfigured().users.update(uniqueId, data));\n }\n\n getUserDrafts(uniqueId: string): Observable<Post[]> {\n return from(this.ensureConfigured().users.getDrafts(uniqueId));\n }\n\n getUserPosts(uniqueId: string): Observable<Post[]> {\n return from(this.ensureConfigured().users.getPosts(uniqueId));\n }\n\n getUserComments(uniqueId: string): Observable<Comment[]> {\n return from(this.ensureConfigured().users.getComments(uniqueId));\n }\n\n getUserActivities(uniqueId: string): Observable<UserActivity[]> {\n return from(this.ensureConfigured().users.getActivities(uniqueId));\n }\n\n addUserTag(uniqueId: string, tagUniqueId: string): Observable<ContentUser> {\n return from(this.ensureConfigured().users.addTag(uniqueId, tagUniqueId));\n }\n\n removeUserTag(uniqueId: string, tagUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().users.removeTag(uniqueId, tagUniqueId));\n }\n\n getUserFollowers(uniqueId: string): Observable<ContentUser[]> {\n return from(this.ensureConfigured().users.getFollowers(uniqueId));\n }\n\n getUserFollowing(uniqueId: string): Observable<ContentUser[]> {\n return from(this.ensureConfigured().users.getFollowing(uniqueId));\n }\n\n followContentUser(uniqueId: string, targetUserUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().users.followUser(uniqueId, targetUserUniqueId));\n }\n\n unfollowContentUser(uniqueId: string, targetUserUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().users.unfollowUser(uniqueId, targetUserUniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Moderation Service\n // ───────────────────────────────────────────────────────────────────────────\n\n /**\n * Moderate a post\n */\n moderatePost(uniqueId: string, request: ModerateContentRequest): Observable<ModerationResult> {\n return from(this.ensureConfigured().moderation.moderatePost(uniqueId, request));\n }\n\n /**\n * Moderate a comment\n */\n moderateComment(uniqueId: string, request: ModerateContentRequest): Observable<ModerationResult> {\n return from(this.ensureConfigured().moderation.moderateComment(uniqueId, request));\n }\n\n /**\n * List content flags\n */\n listContentFlags(params?: ListContentFlagsParams): Observable<PageResult<ContentFlag>> {\n return from(this.ensureConfigured().moderation.listFlags(params));\n }\n\n /**\n * Create a content flag\n */\n createContentFlag(request: CreateContentFlagRequest): Observable<ContentFlag> {\n return from(this.ensureConfigured().moderation.createFlag(request));\n }\n\n /**\n * Resolve a content flag\n */\n resolveContentFlag(uniqueId: string, resolution: string): Observable<ContentFlag> {\n return from(this.ensureConfigured().moderation.resolveFlag(uniqueId, resolution));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Activity Service\n // ───────────────────────────────────────────────────────────────────────────\n\n /**\n * Get activities\n */\n listActivities(params?: ListActivitiesParams): Observable<PageResult<Activity>> {\n return from(this.ensureConfigured().activities.getActivities(params));\n }\n\n /**\n * Get comments activities for a post\n */\n getCommentsActivities(postUniqueId: string): Observable<Activity[]> {\n return from(this.ensureConfigured().activities.getComments(postUniqueId));\n }\n\n /**\n * Get activity feed for a user\n */\n getActivityFeed(userUniqueId: string, params?: ListActivitiesParams): Observable<PageResult<Activity>> {\n return from(this.ensureConfigured().activities.getFeed(userUniqueId, params));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Series Service\n // ───────────────────────────────────────────────────────────────────────────\n\n /**\n * List all series with pagination\n */\n listSeries(params?: ListSeriesParams): Observable<PageResult<Series>> {\n return from(this.ensureConfigured().series.list(params));\n }\n\n /**\n * Query series with filters\n */\n querySeries(params: QuerySeriesParams): Observable<PageResult<Series>> {\n return from(this.ensureConfigured().series.query(params));\n }\n\n /**\n * Get a series by unique ID\n */\n getSeries(uniqueId: string): Observable<Series> {\n return from(this.ensureConfigured().series.get(uniqueId));\n }\n\n /**\n * Create a new series\n */\n createSeries(data: CreateSeriesRequest): Observable<Series> {\n return from(this.ensureConfigured().series.create(data));\n }\n\n /**\n * Update a series\n */\n updateSeries(uniqueId: string, data: UpdateSeriesRequest): Observable<Series> {\n return from(this.ensureConfigured().series.update(uniqueId, data));\n }\n\n /**\n * Delete a series\n */\n deleteSeries(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().series.delete(uniqueId));\n }\n\n /**\n * Like a series\n */\n likeSeries(uniqueId: string): Observable<Series> {\n return from(this.ensureConfigured().series.like(uniqueId));\n }\n\n /**\n * Dislike a series\n */\n dislikeSeries(uniqueId: string): Observable<Series> {\n return from(this.ensureConfigured().series.dislike(uniqueId));\n }\n\n /**\n * Follow a series\n */\n followSeries(uniqueId: string): Observable<Series> {\n return from(this.ensureConfigured().series.follow(uniqueId));\n }\n\n /**\n * Unfollow a series\n */\n unfollowSeries(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().series.unfollow(uniqueId));\n }\n\n /**\n * Save a series\n */\n saveSeries(uniqueId: string): Observable<Series> {\n return from(this.ensureConfigured().series.save(uniqueId));\n }\n\n /**\n * Unsave a series\n */\n unsaveSeries(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().series.unsave(uniqueId));\n }\n\n /**\n * Get posts in a series\n */\n getSeriesPosts(uniqueId: string): Observable<Post[]> {\n return from(this.ensureConfigured().series.getPosts(uniqueId));\n }\n\n /**\n * Add a post to a series\n */\n addSeriesPost(seriesUniqueId: string, postUniqueId: string, sequence?: number): Observable<void> {\n return from(this.ensureConfigured().series.addPost(seriesUniqueId, postUniqueId, sequence));\n }\n\n /**\n * Remove a post from a series\n */\n removeSeriesPost(seriesUniqueId: string, postUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().series.removePost(seriesUniqueId, postUniqueId));\n }\n\n /**\n * Reorder posts in a series\n */\n reorderSeriesPosts(uniqueId: string, data: ReorderPostsRequest): Observable<Series> {\n return from(this.ensureConfigured().series.reorderPosts(uniqueId, data));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ───────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get contentBlock(): ContentBlock {\n return this.ensureConfigured();\n }\n}\n","// @ts-nocheck\nimport { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createGeolocationBlock,\n type GeolocationBlock,\n type GeolocationBlockConfig,\n // Location types\n type Location,\n type CreateLocationRequest,\n type UpdateLocationRequest,\n type ListLocationsParams,\n // Address types\n type Address,\n type CreateAddressRequest,\n type UpdateAddressRequest,\n type ListAddressesParams,\n // Area types\n type Area,\n type CreateAreaRequest,\n type UpdateAreaRequest,\n type ListAreasParams,\n // Region types\n type Region,\n type CreateRegionRequest,\n type UpdateRegionRequest,\n type ListRegionsParams,\n // Travel Route types\n type TravelRoute,\n type CreateTravelRouteRequest,\n type UpdateTravelRouteRequest,\n type ListTravelRoutesParams,\n // Premise Booking types\n type PremiseBooking,\n type CreatePremiseBookingRequest,\n type UpdatePremiseBookingRequest,\n type ListPremiseBookingsParams,\n // Premise types\n type Premise,\n type CreatePremiseRequest,\n type UpdatePremiseRequest,\n type ListPremisesParams,\n // Premise Event types\n type PremiseEvent,\n type CreatePremiseEventRequest,\n type UpdatePremiseEventRequest,\n type ListPremiseEventsParams,\n // Route Tracker types\n type RouteLocation,\n type CreateRouteLocationRequest,\n type RouteTrackerStatus,\n type ListRouteLocationsParams,\n // Location Hour types\n type LocationHour,\n type CreateLocationHourRequest,\n type UpdateLocationHourRequest,\n // Location Image types\n type LocationImage,\n type CreateLocationImageRequest,\n type PresignLocationImageRequest,\n type PresignLocationImageResponse,\n // Location Slot types\n type LocationSlot,\n type CreateLocationSlotRequest,\n type UpdateLocationSlotRequest,\n // Location Tax types\n type LocationTax,\n type CreateLocationTaxRequest,\n type UpdateLocationTaxRequest,\n // Location Group types\n type LocationGroup,\n type CreateLocationGroupRequest,\n type ListLocationGroupsParams,\n // Geo Identity types\n type GeoIdentity,\n type RegisterGeoIdentityRequest,\n type UpdateGeoIdentityRequest,\n type ListGeoIdentitiesParams,\n type LocationIdentityRequest,\n type UserLocationRequest,\n // Location Identity types\n type LocationIdentity,\n type CreateLocationIdentityRequest,\n type UpdateLocationIdentityRequest,\n type ListLocationIdentitiesParams,\n // Geo lookup types\n type GeoCountry,\n type GeoState,\n type GeoCity,\n type GeoLookupParams,\n} from '@23blocks/block-geolocation';\nimport { TRANSPORT, GEOLOCATION_TRANSPORT, GEOLOCATION_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Geolocation block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class MapComponent {\n * constructor(private geolocation: GeolocationService) {}\n *\n * loadLocations() {\n * this.geolocation.listLocations().subscribe({\n * next: (result) => console.log('Locations:', result.data),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\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 /**\n * Ensure the service is configured, throw helpful error if not\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 // ─────────────────────────────────────────────────────────────────────────────\n // Locations Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listLocations(params?: ListLocationsParams): Observable<PageResult<Location>> {\n return from(this.ensureConfigured().locations.list(params));\n }\n\n getLocation(uniqueId: string): Observable<Location> {\n return from(this.ensureConfigured().locations.get(uniqueId));\n }\n\n createLocation(data: CreateLocationRequest): Observable<Location> {\n return from(this.ensureConfigured().locations.create(data));\n }\n\n updateLocation(uniqueId: string, data: UpdateLocationRequest): Observable<Location> {\n return from(this.ensureConfigured().locations.update(uniqueId, data));\n }\n\n deleteLocation(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().locations.delete(uniqueId));\n }\n\n recoverLocation(uniqueId: string): Observable<Location> {\n return from(this.ensureConfigured().locations.recover(uniqueId));\n }\n\n searchLocations(query: string, params?: ListLocationsParams): Observable<PageResult<Location>> {\n return from(this.ensureConfigured().locations.search(query, params));\n }\n\n listDeletedLocations(params?: ListLocationsParams): Observable<PageResult<Location>> {\n return from(this.ensureConfigured().locations.listDeleted(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Addresses Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listAddresses(params?: ListAddressesParams): Observable<PageResult<Address>> {\n return from(this.ensureConfigured().addresses.list(params));\n }\n\n getAddress(uniqueId: string): Observable<Address> {\n return from(this.ensureConfigured().addresses.get(uniqueId));\n }\n\n createAddress(data: CreateAddressRequest): Observable<Address> {\n return from(this.ensureConfigured().addresses.create(data));\n }\n\n updateAddress(uniqueId: string, data: UpdateAddressRequest): Observable<Address> {\n return from(this.ensureConfigured().addresses.update(uniqueId, data));\n }\n\n deleteAddress(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().addresses.delete(uniqueId));\n }\n\n recoverAddress(uniqueId: string): Observable<Address> {\n return from(this.ensureConfigured().addresses.recover(uniqueId));\n }\n\n searchAddresses(query: string, params?: ListAddressesParams): Observable<PageResult<Address>> {\n return from(this.ensureConfigured().addresses.search(query, params));\n }\n\n listDeletedAddresses(params?: ListAddressesParams): Observable<PageResult<Address>> {\n return from(this.ensureConfigured().addresses.listDeleted(params));\n }\n\n setDefaultAddress(uniqueId: string): Observable<Address> {\n return from(this.ensureConfigured().addresses.setDefault(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Areas Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listAreas(params?: ListAreasParams): Observable<PageResult<Area>> {\n return from(this.ensureConfigured().areas.list(params));\n }\n\n getArea(uniqueId: string): Observable<Area> {\n return from(this.ensureConfigured().areas.get(uniqueId));\n }\n\n createArea(data: CreateAreaRequest): Observable<Area> {\n return from(this.ensureConfigured().areas.create(data));\n }\n\n updateArea(uniqueId: string, data: UpdateAreaRequest): Observable<Area> {\n return from(this.ensureConfigured().areas.update(uniqueId, data));\n }\n\n deleteArea(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().areas.delete(uniqueId));\n }\n\n recoverArea(uniqueId: string): Observable<Area> {\n return from(this.ensureConfigured().areas.recover(uniqueId));\n }\n\n searchAreas(query: string, params?: ListAreasParams): Observable<PageResult<Area>> {\n return from(this.ensureConfigured().areas.search(query, params));\n }\n\n listDeletedAreas(params?: ListAreasParams): Observable<PageResult<Area>> {\n return from(this.ensureConfigured().areas.listDeleted(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Regions Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listRegions(params?: ListRegionsParams): Observable<PageResult<Region>> {\n return from(this.ensureConfigured().regions.list(params));\n }\n\n getRegion(uniqueId: string): Observable<Region> {\n return from(this.ensureConfigured().regions.get(uniqueId));\n }\n\n createRegion(data: CreateRegionRequest): Observable<Region> {\n return from(this.ensureConfigured().regions.create(data));\n }\n\n updateRegion(uniqueId: string, data: UpdateRegionRequest): Observable<Region> {\n return from(this.ensureConfigured().regions.update(uniqueId, data));\n }\n\n deleteRegion(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().regions.delete(uniqueId));\n }\n\n recoverRegion(uniqueId: string): Observable<Region> {\n return from(this.ensureConfigured().regions.recover(uniqueId));\n }\n\n searchRegions(query: string, params?: ListRegionsParams): Observable<PageResult<Region>> {\n return from(this.ensureConfigured().regions.search(query, params));\n }\n\n listDeletedRegions(params?: ListRegionsParams): Observable<PageResult<Region>> {\n return from(this.ensureConfigured().regions.listDeleted(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Travel Routes Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listRoutes(params?: ListTravelRoutesParams): Observable<PageResult<TravelRoute>> {\n return from(this.ensureConfigured().routes.list(params));\n }\n\n getRoute(uniqueId: string): Observable<TravelRoute> {\n return from(this.ensureConfigured().routes.get(uniqueId));\n }\n\n createRoute(data: CreateTravelRouteRequest): Observable<TravelRoute> {\n return from(this.ensureConfigured().routes.create(data));\n }\n\n updateRoute(uniqueId: string, data: UpdateTravelRouteRequest): Observable<TravelRoute> {\n return from(this.ensureConfigured().routes.update(uniqueId, data));\n }\n\n deleteRoute(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().routes.delete(uniqueId));\n }\n\n recoverRoute(uniqueId: string): Observable<TravelRoute> {\n return from(this.ensureConfigured().routes.recover(uniqueId));\n }\n\n searchRoutes(query: string, params?: ListTravelRoutesParams): Observable<PageResult<TravelRoute>> {\n return from(this.ensureConfigured().routes.search(query, params));\n }\n\n listDeletedRoutes(params?: ListTravelRoutesParams): Observable<PageResult<TravelRoute>> {\n return from(this.ensureConfigured().routes.listDeleted(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Premise Bookings Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listBookings(params?: ListPremiseBookingsParams): Observable<PageResult<PremiseBooking>> {\n return from(this.ensureConfigured().bookings.list(params));\n }\n\n getBooking(uniqueId: string): Observable<PremiseBooking> {\n return from(this.ensureConfigured().bookings.get(uniqueId));\n }\n\n createBooking(data: CreatePremiseBookingRequest): Observable<PremiseBooking> {\n return from(this.ensureConfigured().bookings.create(data));\n }\n\n updateBooking(uniqueId: string, data: UpdatePremiseBookingRequest): Observable<PremiseBooking> {\n return from(this.ensureConfigured().bookings.update(uniqueId, data));\n }\n\n deleteBooking(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().bookings.delete(uniqueId));\n }\n\n recoverBooking(uniqueId: string): Observable<PremiseBooking> {\n return from(this.ensureConfigured().bookings.recover(uniqueId));\n }\n\n searchBookings(query: string, params?: ListPremiseBookingsParams): Observable<PageResult<PremiseBooking>> {\n return from(this.ensureConfigured().bookings.search(query, params));\n }\n\n listDeletedBookings(params?: ListPremiseBookingsParams): Observable<PageResult<PremiseBooking>> {\n return from(this.ensureConfigured().bookings.listDeleted(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Premises Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listPremises(params?: ListPremisesParams): Observable<PageResult<Premise>> {\n return from(this.ensureConfigured().premises.list(params));\n }\n\n getPremise(uniqueId: string): Observable<Premise> {\n return from(this.ensureConfigured().premises.get(uniqueId));\n }\n\n createPremise(data: CreatePremiseRequest): Observable<Premise> {\n return from(this.ensureConfigured().premises.create(data));\n }\n\n updatePremise(uniqueId: string, data: UpdatePremiseRequest): Observable<Premise> {\n return from(this.ensureConfigured().premises.update(uniqueId, data));\n }\n\n deletePremise(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().premises.delete(uniqueId));\n }\n\n recoverPremise(uniqueId: string): Observable<Premise> {\n return from(this.ensureConfigured().premises.recover(uniqueId));\n }\n\n searchPremises(query: string, params?: ListPremisesParams): Observable<PageResult<Premise>> {\n return from(this.ensureConfigured().premises.search(query, params));\n }\n\n listDeletedPremises(params?: ListPremisesParams): Observable<PageResult<Premise>> {\n return from(this.ensureConfigured().premises.listDeleted(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Premise Events Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List all premise events\n */\n listPremiseEvents(\n locationUniqueId: string,\n premiseUniqueId: string,\n params?: ListPremiseEventsParams\n ): Observable<PageResult<PremiseEvent>> {\n return from(this.ensureConfigured().premiseEvents.list(locationUniqueId, premiseUniqueId, params));\n }\n\n /**\n * Get a premise event by unique ID\n */\n getPremiseEvent(\n locationUniqueId: string,\n premiseUniqueId: string,\n uniqueId: string\n ): Observable<PremiseEvent> {\n return from(this.ensureConfigured().premiseEvents.get(locationUniqueId, premiseUniqueId, uniqueId));\n }\n\n /**\n * Create a new premise event\n */\n createPremiseEvent(\n locationUniqueId: string,\n premiseUniqueId: string,\n data: CreatePremiseEventRequest\n ): Observable<PremiseEvent> {\n return from(this.ensureConfigured().premiseEvents.create(locationUniqueId, premiseUniqueId, data));\n }\n\n /**\n * Update a premise event\n */\n updatePremiseEvent(\n locationUniqueId: string,\n premiseUniqueId: string,\n uniqueId: string,\n data: UpdatePremiseEventRequest\n ): Observable<PremiseEvent> {\n return from(this.ensureConfigured().premiseEvents.update(locationUniqueId, premiseUniqueId, uniqueId, data));\n }\n\n /**\n * Delete a premise event\n */\n deletePremiseEvent(\n locationUniqueId: string,\n premiseUniqueId: string,\n uniqueId: string\n ): Observable<void> {\n return from(this.ensureConfigured().premiseEvents.delete(locationUniqueId, premiseUniqueId, uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Route Tracker Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Record a location point for a route\n */\n recordRouteLocation(\n userUniqueId: string,\n routeUniqueId: string,\n data: CreateRouteLocationRequest\n ): Observable<RouteLocation> {\n return from(this.ensureConfigured().routeTracker.recordLocation(userUniqueId, routeUniqueId, data));\n }\n\n /**\n * Get route tracking status\n */\n getRouteTrackerStatus(userUniqueId: string, routeUniqueId: string): Observable<RouteTrackerStatus> {\n return from(this.ensureConfigured().routeTracker.getStatus(userUniqueId, routeUniqueId));\n }\n\n /**\n * List all recorded locations for a route\n */\n listRouteLocations(\n userUniqueId: string,\n routeUniqueId: string,\n params?: ListRouteLocationsParams\n ): Observable<PageResult<RouteLocation>> {\n return from(this.ensureConfigured().routeTracker.listLocations(userUniqueId, routeUniqueId, params));\n }\n\n /**\n * Start tracking for a route\n */\n startRouteTracking(userUniqueId: string, routeUniqueId: string): Observable<RouteTrackerStatus> {\n return from(this.ensureConfigured().routeTracker.startTracking(userUniqueId, routeUniqueId));\n }\n\n /**\n * Stop tracking for a route\n */\n stopRouteTracking(userUniqueId: string, routeUniqueId: string): Observable<RouteTrackerStatus> {\n return from(this.ensureConfigured().routeTracker.stopTracking(userUniqueId, routeUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Location Hours Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List all hours for a location\n */\n listLocationHours(locationUniqueId: string): Observable<LocationHour[]> {\n return from(this.ensureConfigured().locationHours.list(locationUniqueId));\n }\n\n /**\n * Get a location hour by unique ID\n */\n getLocationHour(locationUniqueId: string, hourUniqueId: string): Observable<LocationHour> {\n return from(this.ensureConfigured().locationHours.get(locationUniqueId, hourUniqueId));\n }\n\n /**\n * Create a new location hour\n */\n createLocationHour(locationUniqueId: string, data: CreateLocationHourRequest): Observable<LocationHour> {\n return from(this.ensureConfigured().locationHours.create(locationUniqueId, data));\n }\n\n /**\n * Update a location hour\n */\n updateLocationHour(\n locationUniqueId: string,\n hourUniqueId: string,\n data: UpdateLocationHourRequest\n ): Observable<LocationHour> {\n return from(this.ensureConfigured().locationHours.update(locationUniqueId, hourUniqueId, data));\n }\n\n /**\n * Delete a location hour\n */\n deleteLocationHour(locationUniqueId: string, hourUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().locationHours.delete(locationUniqueId, hourUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Location Images Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Get a presigned URL for uploading an image\n */\n presignLocationImage(\n locationUniqueId: string,\n data: PresignLocationImageRequest\n ): Observable<PresignLocationImageResponse> {\n return from(this.ensureConfigured().locationImages.presign(locationUniqueId, data));\n }\n\n /**\n * Create a new location image\n */\n createLocationImage(locationUniqueId: string, data: CreateLocationImageRequest): Observable<LocationImage> {\n return from(this.ensureConfigured().locationImages.create(locationUniqueId, data));\n }\n\n /**\n * Delete a location image\n */\n deleteLocationImage(locationUniqueId: string, imageUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().locationImages.delete(locationUniqueId, imageUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Location Slots Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List all slots for a location\n */\n listLocationSlots(locationUniqueId: string): Observable<LocationSlot[]> {\n return from(this.ensureConfigured().locationSlots.list(locationUniqueId));\n }\n\n /**\n * Get a location slot by unique ID\n */\n getLocationSlot(locationUniqueId: string, slotUniqueId: string): Observable<LocationSlot> {\n return from(this.ensureConfigured().locationSlots.get(locationUniqueId, slotUniqueId));\n }\n\n /**\n * Create a new location slot\n */\n createLocationSlot(locationUniqueId: string, data: CreateLocationSlotRequest): Observable<LocationSlot> {\n return from(this.ensureConfigured().locationSlots.create(locationUniqueId, data));\n }\n\n /**\n * Update a location slot\n */\n updateLocationSlot(\n locationUniqueId: string,\n slotUniqueId: string,\n data: UpdateLocationSlotRequest\n ): Observable<LocationSlot> {\n return from(this.ensureConfigured().locationSlots.update(locationUniqueId, slotUniqueId, data));\n }\n\n /**\n * Delete a location slot\n */\n deleteLocationSlot(locationUniqueId: string, slotUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().locationSlots.delete(locationUniqueId, slotUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Location Taxes Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Create a new location tax\n */\n createLocationTax(locationUniqueId: string, data: CreateLocationTaxRequest): Observable<LocationTax> {\n return from(this.ensureConfigured().locationTaxes.create(locationUniqueId, data));\n }\n\n /**\n * Update a location tax\n */\n updateLocationTax(\n locationUniqueId: string,\n taxUniqueId: string,\n data: UpdateLocationTaxRequest\n ): Observable<LocationTax> {\n return from(this.ensureConfigured().locationTaxes.update(locationUniqueId, taxUniqueId, data));\n }\n\n /**\n * Delete a location tax\n */\n deleteLocationTax(locationUniqueId: string, taxUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().locationTaxes.delete(locationUniqueId, taxUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Location Groups Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List all location groups\n */\n listLocationGroups(params?: ListLocationGroupsParams): Observable<PageResult<LocationGroup>> {\n return from(this.ensureConfigured().locationGroups.list(params));\n }\n\n /**\n * Get a location group by unique ID\n */\n getLocationGroup(uniqueId: string): Observable<LocationGroup> {\n return from(this.ensureConfigured().locationGroups.get(uniqueId));\n }\n\n /**\n * Create a new location group\n */\n createLocationGroup(data: CreateLocationGroupRequest): Observable<LocationGroup> {\n return from(this.ensureConfigured().locationGroups.create(data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Geo Identities Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List all geo identities\n */\n listGeoIdentities(params?: ListGeoIdentitiesParams): Observable<PageResult<GeoIdentity>> {\n return from(this.ensureConfigured().identities.list(params));\n }\n\n /**\n * Get a geo identity by unique ID\n */\n getGeoIdentity(uniqueId: string): Observable<GeoIdentity> {\n return from(this.ensureConfigured().identities.get(uniqueId));\n }\n\n /**\n * Register a geo identity\n */\n registerGeoIdentity(uniqueId: string, data: RegisterGeoIdentityRequest): Observable<GeoIdentity> {\n return from(this.ensureConfigured().identities.register(uniqueId, data));\n }\n\n /**\n * Update a geo identity\n */\n updateGeoIdentity(uniqueId: string, data: UpdateGeoIdentityRequest): Observable<GeoIdentity> {\n return from(this.ensureConfigured().identities.update(uniqueId, data));\n }\n\n /**\n * Delete a geo identity\n */\n deleteGeoIdentity(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().identities.delete(uniqueId));\n }\n\n /**\n * Add an identity to a location\n */\n addIdentityToLocation(locationUniqueId: string, data: LocationIdentityRequest): Observable<void> {\n return from(this.ensureConfigured().identities.addToLocation(locationUniqueId, data));\n }\n\n /**\n * Remove an identity from a location\n */\n removeIdentityFromLocation(locationUniqueId: string, userUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().identities.removeFromLocation(locationUniqueId, userUniqueId));\n }\n\n /**\n * Update a user's location\n */\n updateUserLocation(userUniqueId: string, data: UserLocationRequest): Observable<void> {\n return from(this.ensureConfigured().identities.updateLocation(userUniqueId, data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Location Identities Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List all location identities\n */\n listLocationIdentities(params?: ListLocationIdentitiesParams): Observable<PageResult<LocationIdentity>> {\n return from(this.ensureConfigured().locationIdentities.list(params));\n }\n\n /**\n * Get a location identity by unique ID\n */\n getLocationIdentity(uniqueId: string): Observable<LocationIdentity> {\n return from(this.ensureConfigured().locationIdentities.get(uniqueId));\n }\n\n /**\n * Create a new location identity\n */\n createLocationIdentity(data: CreateLocationIdentityRequest): Observable<LocationIdentity> {\n return from(this.ensureConfigured().locationIdentities.create(data));\n }\n\n /**\n * Update a location identity\n */\n updateLocationIdentity(uniqueId: string, data: UpdateLocationIdentityRequest): Observable<LocationIdentity> {\n return from(this.ensureConfigured().locationIdentities.update(uniqueId, data));\n }\n\n /**\n * Delete a location identity\n */\n deleteLocationIdentity(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().locationIdentities.delete(uniqueId));\n }\n\n /**\n * Check in an identity at a location\n */\n checkInLocationIdentity(\n locationUniqueId: string,\n identityUniqueId: string,\n identityType: string\n ): Observable<LocationIdentity> {\n return from(this.ensureConfigured().locationIdentities.checkIn(locationUniqueId, identityUniqueId, identityType));\n }\n\n /**\n * Check out an identity from a location\n */\n checkOutLocationIdentity(uniqueId: string): Observable<LocationIdentity> {\n return from(this.ensureConfigured().locationIdentities.checkOut(uniqueId));\n }\n\n /**\n * List identities by location\n */\n listLocationIdentitiesByLocation(\n locationUniqueId: string,\n params?: ListLocationIdentitiesParams\n ): Observable<PageResult<LocationIdentity>> {\n return from(this.ensureConfigured().locationIdentities.listByLocation(locationUniqueId, params));\n }\n\n /**\n * List identities by identity\n */\n listLocationIdentitiesByIdentity(\n identityUniqueId: string,\n identityType: string,\n params?: ListLocationIdentitiesParams\n ): Observable<PageResult<LocationIdentity>> {\n return from(this.ensureConfigured().locationIdentities.listByIdentity(identityUniqueId, identityType, params));\n }\n\n /**\n * Get current location for an identity\n */\n getCurrentLocationForIdentity(\n identityUniqueId: string,\n identityType: string\n ): Observable<LocationIdentity | null> {\n return from(this.ensureConfigured().locationIdentities.getCurrentLocation(identityUniqueId, identityType));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Geo Countries Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List all countries\n */\n listGeoCountries(params?: GeoLookupParams): Observable<PageResult<GeoCountry>> {\n return from(this.ensureConfigured().geoCountries.list(params));\n }\n\n /**\n * Get a country by code\n */\n getGeoCountry(code: string): Observable<GeoCountry> {\n return from(this.ensureConfigured().geoCountries.get(code));\n }\n\n /**\n * Search countries by name\n */\n searchGeoCountries(query: string, params?: GeoLookupParams): Observable<PageResult<GeoCountry>> {\n return from(this.ensureConfigured().geoCountries.search(query, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Geo States Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List states by country\n */\n listGeoStates(countryCode: string, params?: GeoLookupParams): Observable<PageResult<GeoState>> {\n return from(this.ensureConfigured().geoStates.listByCountry(countryCode, params));\n }\n\n /**\n * Get a state by code\n */\n getGeoState(code: string): Observable<GeoState> {\n return from(this.ensureConfigured().geoStates.get(code));\n }\n\n /**\n * Search states by name\n */\n searchGeoStates(query: string, countryCode?: string, params?: GeoLookupParams): Observable<PageResult<GeoState>> {\n return from(this.ensureConfigured().geoStates.search(query, countryCode, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Geo Cities Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List cities by state or country\n */\n listGeoCities(countryCode: string, stateCode?: string, params?: GeoLookupParams): Observable<PageResult<GeoCity>> {\n return from(this.ensureConfigured().geoCities.list(countryCode, stateCode, params));\n }\n\n /**\n * Get a city by code\n */\n getGeoCity(code: string): Observable<GeoCity> {\n return from(this.ensureConfigured().geoCities.get(code));\n }\n\n /**\n * Search cities by name\n */\n searchGeoCities(query: string, countryCode?: string, stateCode?: string, params?: GeoLookupParams): Observable<PageResult<GeoCity>> {\n return from(this.ensureConfigured().geoCities.search(query, countryCode, stateCode, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get geolocationBlock(): GeolocationBlock {\n return this.ensureConfigured();\n }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createConversationsBlock,\n type ConversationsBlock,\n type ConversationsBlockConfig,\n // Message types\n type Message,\n type CreateMessageRequest,\n type UpdateMessageRequest,\n type ListMessagesParams,\n // Draft Message types\n type DraftMessage,\n type CreateDraftMessageRequest,\n type UpdateDraftMessageRequest,\n type ListDraftMessagesParams,\n // Group types\n type Group,\n type CreateGroupRequest,\n type UpdateGroupRequest,\n type ListGroupsParams,\n // Group Invite types\n type GroupInvite,\n type CreateGroupInviteRequest,\n type JoinGroupRequest,\n type QRCodeResponse,\n type ListGroupInvitesParams,\n // Notification types\n type Notification,\n type CreateNotificationRequest,\n type UpdateNotificationRequest,\n type ListNotificationsParams,\n // Conversation types\n type Conversation,\n type GetConversationParams,\n // WebSocket Token types\n type CreateWebSocketTokenRequest,\n type CreateWebSocketTokenResponse,\n // Context types\n type Context,\n type CreateContextRequest,\n type UpdateContextRequest,\n type ListContextsParams,\n // Notification Settings types\n type NotificationSettings,\n type UpdateNotificationSettingsRequest,\n // Availability types\n type UserAvailability,\n type SetAvailabilityRequest,\n // Message File types\n type MessageFile,\n type CreateMessageFileRequest,\n type PresignMessageFileRequest,\n type PresignMessageFileResponse,\n // Source types\n type Source,\n // User types\n type ConversationsUser,\n type RegisterUserRequest,\n type UpdateUserRequest,\n type ListUsersParams,\n // Meeting types\n type Meeting,\n type MeetingSession,\n type CreateMeetingRequest,\n type UpdateMeetingRequest,\n type ListMeetingsParams,\n // Web Notification types\n type WebNotification,\n type CreateWebNotificationRequest,\n type BulkWebNotificationRequest,\n type ListWebNotificationsParams,\n} from '@23blocks/block-conversations';\nimport { TRANSPORT, CONVERSATIONS_TRANSPORT, CONVERSATIONS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Conversations block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class ChatComponent {\n * constructor(private conversations: ConversationsService) {}\n *\n * sendMessage(contextId: string, content: string) {\n * this.conversations.createMessage({ contextId, content }).subscribe({\n * next: (message) => console.log('Message sent:', message),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\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 /**\n * Ensure the service is configured, throw helpful error if not\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 // ─────────────────────────────────────────────────────────────────────────────\n // Messages Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listMessages(params?: ListMessagesParams): Observable<PageResult<Message>> {\n return from(this.ensureConfigured().messages.list(params));\n }\n\n getMessage(uniqueId: string): Observable<Message> {\n return from(this.ensureConfigured().messages.get(uniqueId));\n }\n\n createMessage(data: CreateMessageRequest): Observable<Message> {\n return from(this.ensureConfigured().messages.create(data));\n }\n\n updateMessage(uniqueId: string, data: UpdateMessageRequest): Observable<Message> {\n return from(this.ensureConfigured().messages.update(uniqueId, data));\n }\n\n deleteMessage(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().messages.delete(uniqueId));\n }\n\n recoverMessage(uniqueId: string): Observable<Message> {\n return from(this.ensureConfigured().messages.recover(uniqueId));\n }\n\n listMessagesByContext(contextId: string, params?: ListMessagesParams): Observable<PageResult<Message>> {\n return from(this.ensureConfigured().messages.listByContext(contextId, params));\n }\n\n listMessagesByParent(parentId: string, params?: ListMessagesParams): Observable<PageResult<Message>> {\n return from(this.ensureConfigured().messages.listByParent(parentId, params));\n }\n\n listDeletedMessages(params?: ListMessagesParams): Observable<PageResult<Message>> {\n return from(this.ensureConfigured().messages.listDeleted(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Draft Messages Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listDraftMessages(params?: ListDraftMessagesParams): Observable<PageResult<DraftMessage>> {\n return from(this.ensureConfigured().draftMessages.list(params));\n }\n\n getDraftMessage(uniqueId: string): Observable<DraftMessage> {\n return from(this.ensureConfigured().draftMessages.get(uniqueId));\n }\n\n createDraftMessage(data: CreateDraftMessageRequest): Observable<DraftMessage> {\n return from(this.ensureConfigured().draftMessages.create(data));\n }\n\n updateDraftMessage(uniqueId: string, data: UpdateDraftMessageRequest): Observable<DraftMessage> {\n return from(this.ensureConfigured().draftMessages.update(uniqueId, data));\n }\n\n deleteDraftMessage(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().draftMessages.delete(uniqueId));\n }\n\n listDraftMessagesByContext(contextId: string, params?: ListDraftMessagesParams): Observable<PageResult<DraftMessage>> {\n return from(this.ensureConfigured().draftMessages.listByContext(contextId, params));\n }\n\n publishDraftMessage(uniqueId: string): Observable<DraftMessage> {\n return from(this.ensureConfigured().draftMessages.publish(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Groups Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listGroups(params?: ListGroupsParams): Observable<PageResult<Group>> {\n return from(this.ensureConfigured().groups.list(params));\n }\n\n getGroup(uniqueId: string): Observable<Group> {\n return from(this.ensureConfigured().groups.get(uniqueId));\n }\n\n createGroup(data: CreateGroupRequest): Observable<Group> {\n return from(this.ensureConfigured().groups.create(data));\n }\n\n updateGroup(uniqueId: string, data: UpdateGroupRequest): Observable<Group> {\n return from(this.ensureConfigured().groups.update(uniqueId, data));\n }\n\n deleteGroup(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().groups.delete(uniqueId));\n }\n\n recoverGroup(uniqueId: string): Observable<Group> {\n return from(this.ensureConfigured().groups.recover(uniqueId));\n }\n\n searchGroups(query: string, params?: ListGroupsParams): Observable<PageResult<Group>> {\n return from(this.ensureConfigured().groups.search(query, params));\n }\n\n listDeletedGroups(params?: ListGroupsParams): Observable<PageResult<Group>> {\n return from(this.ensureConfigured().groups.listDeleted(params));\n }\n\n addGroupMember(uniqueId: string, memberId: string): Observable<Group> {\n return from(this.ensureConfigured().groups.addMember(uniqueId, memberId));\n }\n\n removeGroupMember(uniqueId: string, memberId: string): Observable<Group> {\n return from(this.ensureConfigured().groups.removeMember(uniqueId, memberId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Group Invites Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listGroupInvites(groupUniqueId: string, params?: ListGroupInvitesParams): Observable<PageResult<GroupInvite>> {\n return from(this.ensureConfigured().groupInvites.list(groupUniqueId, params));\n }\n\n createGroupInvite(groupUniqueId: string, data?: CreateGroupInviteRequest): Observable<GroupInvite> {\n return from(this.ensureConfigured().groupInvites.create(groupUniqueId, data));\n }\n\n revokeGroupInvite(groupUniqueId: string, code: string): Observable<void> {\n return from(this.ensureConfigured().groupInvites.revoke(groupUniqueId, code));\n }\n\n getGroupInviteQRCode(groupUniqueId: string, code: string): Observable<QRCodeResponse> {\n return from(this.ensureConfigured().groupInvites.getQRCode(groupUniqueId, code));\n }\n\n joinGroupByInvite(code: string, data?: JoinGroupRequest): Observable<Group> {\n return from(this.ensureConfigured().groupInvites.join(code, data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Notifications Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listNotifications(params?: ListNotificationsParams): Observable<PageResult<Notification>> {\n return from(this.ensureConfigured().notifications.list(params));\n }\n\n getNotification(uniqueId: string): Observable<Notification> {\n return from(this.ensureConfigured().notifications.get(uniqueId));\n }\n\n createNotification(data: CreateNotificationRequest): Observable<Notification> {\n return from(this.ensureConfigured().notifications.create(data));\n }\n\n updateNotification(uniqueId: string, data: UpdateNotificationRequest): Observable<Notification> {\n return from(this.ensureConfigured().notifications.update(uniqueId, data));\n }\n\n deleteNotification(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().notifications.delete(uniqueId));\n }\n\n markNotificationAsRead(uniqueId: string): Observable<Notification> {\n return from(this.ensureConfigured().notifications.markAsRead(uniqueId));\n }\n\n markNotificationAsUnread(uniqueId: string): Observable<Notification> {\n return from(this.ensureConfigured().notifications.markAsUnread(uniqueId));\n }\n\n listNotificationsByTarget(targetId: string, params?: ListNotificationsParams): Observable<PageResult<Notification>> {\n return from(this.ensureConfigured().notifications.listByTarget(targetId, params));\n }\n\n listUnreadNotifications(params?: ListNotificationsParams): Observable<PageResult<Notification>> {\n return from(this.ensureConfigured().notifications.listUnread(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Conversations Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getConversation(params: GetConversationParams): Observable<Conversation> {\n return from(this.ensureConfigured().conversations.get(params));\n }\n\n listConversationContexts(): Observable<string[]> {\n return from(this.ensureConfigured().conversations.listContexts());\n }\n\n deleteConversationContext(context: string): Observable<void> {\n return from(this.ensureConfigured().conversations.deleteContext(context));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // WebSocket Tokens Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n createWebSocketToken(data?: CreateWebSocketTokenRequest): Observable<CreateWebSocketTokenResponse> {\n return from(this.ensureConfigured().websocketTokens.create(data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Contexts Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listContexts(params?: ListContextsParams): Observable<PageResult<Context>> {\n return from(this.ensureConfigured().contexts.list(params));\n }\n\n getContext(uniqueId: string): Observable<Context> {\n return from(this.ensureConfigured().contexts.get(uniqueId));\n }\n\n createContext(data: CreateContextRequest): Observable<Context> {\n return from(this.ensureConfigured().contexts.create(data));\n }\n\n updateContext(uniqueId: string, data: UpdateContextRequest): Observable<Context> {\n return from(this.ensureConfigured().contexts.update(uniqueId, data));\n }\n\n listContextGroups(contextUniqueId: string): Observable<PageResult<Group>> {\n return from(this.ensureConfigured().contexts.listGroups(contextUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Notification Settings Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getNotificationSettings(userUniqueId: string): Observable<NotificationSettings> {\n return from(this.ensureConfigured().notificationSettings.get(userUniqueId));\n }\n\n updateNotificationSettings(userUniqueId: string, data: UpdateNotificationSettingsRequest): Observable<NotificationSettings> {\n return from(this.ensureConfigured().notificationSettings.update(userUniqueId, data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Availabilities Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getUserAvailability(userUniqueId: string): Observable<UserAvailability> {\n return from(this.ensureConfigured().availabilities.get(userUniqueId));\n }\n\n goOnline(data?: SetAvailabilityRequest): Observable<UserAvailability> {\n return from(this.ensureConfigured().availabilities.goOnline(data));\n }\n\n goOffline(): Observable<void> {\n return from(this.ensureConfigured().availabilities.goOffline());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Message Files Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getMessageFile(conversationUniqueId: string, fileUniqueId: string): Observable<MessageFile> {\n return from(this.ensureConfigured().messageFiles.get(conversationUniqueId, fileUniqueId));\n }\n\n createMessageFile(conversationUniqueId: string, data: CreateMessageFileRequest): Observable<MessageFile> {\n return from(this.ensureConfigured().messageFiles.create(conversationUniqueId, data));\n }\n\n deleteMessageFile(conversationUniqueId: string, fileUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().messageFiles.delete(conversationUniqueId, fileUniqueId));\n }\n\n presignMessageFile(conversationUniqueId: string, data: PresignMessageFileRequest): Observable<PresignMessageFileResponse> {\n return from(this.ensureConfigured().messageFiles.presign(conversationUniqueId, data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Sources Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getSource(uniqueId: string): Observable<Source> {\n return from(this.ensureConfigured().sources.get(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Users Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listConversationsUsers(params?: ListUsersParams): Observable<PageResult<ConversationsUser>> {\n return from(this.ensureConfigured().users.list(params));\n }\n\n getConversationsUser(uniqueId: string): Observable<ConversationsUser> {\n return from(this.ensureConfigured().users.get(uniqueId));\n }\n\n registerConversationsUser(uniqueId: string, data?: RegisterUserRequest): Observable<ConversationsUser> {\n return from(this.ensureConfigured().users.register(uniqueId, data));\n }\n\n updateConversationsUser(uniqueId: string, data: UpdateUserRequest): Observable<ConversationsUser> {\n return from(this.ensureConfigured().users.update(uniqueId, data));\n }\n\n listUserGroups(uniqueId: string): Observable<PageResult<Group>> {\n return from(this.ensureConfigured().users.listGroups(uniqueId));\n }\n\n listUserConversations(uniqueId: string, params?: { page?: number; perPage?: number }): Observable<PageResult<Conversation>> {\n return from(this.ensureConfigured().users.listConversations(uniqueId, params));\n }\n\n listUserGroupConversations(uniqueId: string, params?: { page?: number; perPage?: number }): Observable<PageResult<Conversation>> {\n return from(this.ensureConfigured().users.listGroupConversations(uniqueId, params));\n }\n\n listUserContextGroups(uniqueId: string, contextUniqueId: string): Observable<PageResult<Group>> {\n return from(this.ensureConfigured().users.listContextGroups(uniqueId, contextUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Meetings Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listMeetings(params?: ListMeetingsParams): Observable<PageResult<Meeting>> {\n return from(this.ensureConfigured().meetings.list(params));\n }\n\n getMeeting(uniqueId: string): Observable<Meeting> {\n return from(this.ensureConfigured().meetings.get(uniqueId));\n }\n\n createMeeting(data: CreateMeetingRequest): Observable<Meeting> {\n return from(this.ensureConfigured().meetings.create(data));\n }\n\n updateMeeting(uniqueId: string, data: UpdateMeetingRequest): Observable<Meeting> {\n return from(this.ensureConfigured().meetings.update(uniqueId, data));\n }\n\n deleteMeeting(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().meetings.delete(uniqueId));\n }\n\n createMeetingSession(uniqueId: string): Observable<MeetingSession> {\n return from(this.ensureConfigured().meetings.createSession(uniqueId));\n }\n\n startMeeting(uniqueId: string): Observable<Meeting> {\n return from(this.ensureConfigured().meetings.start(uniqueId));\n }\n\n endMeeting(uniqueId: string): Observable<Meeting> {\n return from(this.ensureConfigured().meetings.end(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Web Notifications Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listWebNotifications(params?: ListWebNotificationsParams): Observable<PageResult<WebNotification>> {\n return from(this.ensureConfigured().webNotifications.list(params));\n }\n\n getWebNotification(uniqueId: string): Observable<WebNotification> {\n return from(this.ensureConfigured().webNotifications.get(uniqueId));\n }\n\n sendWebNotification(data: CreateWebNotificationRequest): Observable<WebNotification> {\n return from(this.ensureConfigured().webNotifications.send(data));\n }\n\n sendBulkWebNotifications(data: BulkWebNotificationRequest): Observable<{ sent: number; failed: number }> {\n return from(this.ensureConfigured().webNotifications.sendBulk(data));\n }\n\n markWebNotificationAsRead(uniqueId: string): Observable<WebNotification> {\n return from(this.ensureConfigured().webNotifications.markAsRead(uniqueId));\n }\n\n markWebNotificationAsClicked(uniqueId: string): Observable<WebNotification> {\n return from(this.ensureConfigured().webNotifications.markAsClicked(uniqueId));\n }\n\n markAllWebNotificationsAsRead(recipientUniqueId: string): Observable<{ updated: number }> {\n return from(this.ensureConfigured().webNotifications.markAllAsRead(recipientUniqueId));\n }\n\n deleteWebNotification(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().webNotifications.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get conversationsBlock(): ConversationsBlock {\n return this.ensureConfigured();\n }\n}\n","// @ts-nocheck\nimport { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createFilesBlock,\n type FilesBlock,\n type FilesBlockConfig,\n // Storage Files types\n type StorageFile,\n type CreateStorageFileRequest,\n type UpdateStorageFileRequest,\n type ListStorageFilesParams,\n type UploadFileRequest,\n // Entity Files types\n type EntityFile,\n type AttachFileRequest,\n type UpdateEntityFileRequest,\n type ListEntityFilesParams,\n type ReorderFilesRequest,\n // File Schemas types\n type FileSchema,\n type CreateFileSchemaRequest,\n type UpdateFileSchemaRequest,\n type ListFileSchemasParams,\n // User Files types\n type UserFile,\n type ListUserFilesParams,\n type AddUserFileRequest,\n type UpdateUserFileRequest,\n type PresignUploadRequest,\n type PresignUploadResponse,\n type MultipartPresignRequest,\n type MultipartPresignResponse,\n type MultipartCompleteRequest,\n type FileAccess as UserFileAccess,\n type FileAccessRequest as UserFileAccessRequest,\n type FileDelegation as UserFileDelegation,\n type CreateDelegationRequest,\n // File Categories types\n type FileCategory,\n type CreateFileCategoryRequest,\n type UpdateFileCategoryRequest,\n type ListFileCategoriesParams,\n // File Tags types\n type FileTag,\n type CreateFileTagRequest,\n type UpdateFileTagRequest,\n type ListFileTagsParams,\n // Delegations types\n type FileDelegation,\n type CreateFileDelegationRequest,\n type UpdateFileDelegationRequest,\n type ListFileDelegationsParams,\n // File Access types\n type FileAccess,\n type CreateFileAccessRequest,\n type UpdateFileAccessRequest,\n type ListFileAccessParams,\n // File Access Requests types\n type FileAccessRequest,\n type CreateFileAccessRequestInput,\n type ReviewFileAccessRequestInput,\n type ListFileAccessRequestsParams,\n} from '@23blocks/block-files';\nimport { TRANSPORT, FILES_TRANSPORT, FILES_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Files block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class FileUploadComponent {\n * constructor(private files: FilesService) {}\n *\n * uploadFile(file: File) {\n * this.files.uploadStorageFile({\n * file,\n * fileName: file.name,\n * ownerUniqueId: 'user-123',\n * ownerType: 'User',\n * }).subscribe({\n * next: (storageFile) => console.log('Uploaded:', storageFile),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\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 /**\n * Ensure the service is configured, throw helpful error if not\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 // ─────────────────────────────────────────────────────────────────────────────\n // Storage Files Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listStorageFiles(params?: ListStorageFilesParams): Observable<PageResult<StorageFile>> {\n return from(this.ensureConfigured().storageFiles.list(params));\n }\n\n getStorageFile(uniqueId: string): Observable<StorageFile> {\n return from(this.ensureConfigured().storageFiles.get(uniqueId));\n }\n\n uploadStorageFile(data: UploadFileRequest): Observable<StorageFile> {\n return from(this.ensureConfigured().storageFiles.upload(data));\n }\n\n createStorageFile(data: CreateStorageFileRequest): Observable<StorageFile> {\n return from(this.ensureConfigured().storageFiles.create(data));\n }\n\n updateStorageFile(uniqueId: string, data: UpdateStorageFileRequest): Observable<StorageFile> {\n return from(this.ensureConfigured().storageFiles.update(uniqueId, data));\n }\n\n deleteStorageFile(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().storageFiles.delete(uniqueId));\n }\n\n downloadStorageFile(uniqueId: string): Observable<Blob> {\n return from(this.ensureConfigured().storageFiles.download(uniqueId));\n }\n\n listStorageFilesByOwner(\n ownerUniqueId: string,\n ownerType: string,\n params?: ListStorageFilesParams\n ): Observable<PageResult<StorageFile>> {\n return from(this.ensureConfigured().storageFiles.listByOwner(ownerUniqueId, ownerType, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Entity Files Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listEntityFiles(params?: ListEntityFilesParams): Observable<PageResult<EntityFile>> {\n return from(this.ensureConfigured().entityFiles.list(params));\n }\n\n getEntityFile(uniqueId: string): Observable<EntityFile> {\n return from(this.ensureConfigured().entityFiles.get(uniqueId));\n }\n\n attachFile(data: AttachFileRequest): Observable<EntityFile> {\n return from(this.ensureConfigured().entityFiles.attach(data));\n }\n\n detachFile(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().entityFiles.detach(uniqueId));\n }\n\n updateEntityFile(uniqueId: string, data: UpdateEntityFileRequest): Observable<EntityFile> {\n return from(this.ensureConfigured().entityFiles.update(uniqueId, data));\n }\n\n reorderEntityFiles(\n entityUniqueId: string,\n entityType: string,\n data: ReorderFilesRequest\n ): Observable<EntityFile[]> {\n return from(this.ensureConfigured().entityFiles.reorder(entityUniqueId, entityType, data));\n }\n\n listEntityFilesByEntity(\n entityUniqueId: string,\n entityType: string,\n params?: ListEntityFilesParams\n ): Observable<PageResult<EntityFile>> {\n return from(this.ensureConfigured().entityFiles.listByEntity(entityUniqueId, entityType, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // File Schemas Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listFileSchemas(params?: ListFileSchemasParams): Observable<PageResult<FileSchema>> {\n return from(this.ensureConfigured().fileSchemas.list(params));\n }\n\n getFileSchema(uniqueId: string): Observable<FileSchema> {\n return from(this.ensureConfigured().fileSchemas.get(uniqueId));\n }\n\n getFileSchemaByCode(code: string): Observable<FileSchema> {\n return from(this.ensureConfigured().fileSchemas.getByCode(code));\n }\n\n createFileSchema(data: CreateFileSchemaRequest): Observable<FileSchema> {\n return from(this.ensureConfigured().fileSchemas.create(data));\n }\n\n updateFileSchema(uniqueId: string, data: UpdateFileSchemaRequest): Observable<FileSchema> {\n return from(this.ensureConfigured().fileSchemas.update(uniqueId, data));\n }\n\n deleteFileSchema(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().fileSchemas.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // User Files Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List user files\n */\n listUserFiles(userUniqueId: string, params?: ListUserFilesParams): Observable<PageResult<UserFile>> {\n return from(this.ensureConfigured().userFiles.list(userUniqueId, params));\n }\n\n /**\n * Get a user file\n */\n getUserFile(userUniqueId: string, fileUniqueId: string): Observable<UserFile> {\n return from(this.ensureConfigured().userFiles.get(userUniqueId, fileUniqueId));\n }\n\n /**\n * Add a user file\n */\n addUserFile(userUniqueId: string, data: AddUserFileRequest): Observable<UserFile> {\n return from(this.ensureConfigured().userFiles.add(userUniqueId, data));\n }\n\n /**\n * Update a user file\n */\n updateUserFile(userUniqueId: string, fileUniqueId: string, data: UpdateUserFileRequest): Observable<UserFile> {\n return from(this.ensureConfigured().userFiles.update(userUniqueId, fileUniqueId, data));\n }\n\n /**\n * Delete a user file\n */\n deleteUserFile(userUniqueId: string, fileUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().userFiles.delete(userUniqueId, fileUniqueId));\n }\n\n /**\n * Get presigned upload URL for user file\n */\n presignUserFileUpload(userUniqueId: string, data: PresignUploadRequest): Observable<PresignUploadResponse> {\n return from(this.ensureConfigured().userFiles.presignUpload(userUniqueId, data));\n }\n\n /**\n * Get presigned URLs for multipart upload\n */\n multipartPresignUserFile(userUniqueId: string, data: MultipartPresignRequest): Observable<MultipartPresignResponse> {\n return from(this.ensureConfigured().userFiles.multipartPresign(userUniqueId, data));\n }\n\n /**\n * Complete multipart upload for user file\n */\n multipartCompleteUserFile(userUniqueId: string, data: MultipartCompleteRequest): Observable<UserFile> {\n return from(this.ensureConfigured().userFiles.multipartComplete(userUniqueId, data));\n }\n\n /**\n * Approve a user file\n */\n approveUserFile(userUniqueId: string, fileUniqueId: string): Observable<UserFile> {\n return from(this.ensureConfigured().userFiles.approve(userUniqueId, fileUniqueId));\n }\n\n /**\n * Reject a user file\n */\n rejectUserFile(userUniqueId: string, fileUniqueId: string): Observable<UserFile> {\n return from(this.ensureConfigured().userFiles.reject(userUniqueId, fileUniqueId));\n }\n\n /**\n * Publish a user file\n */\n publishUserFile(userUniqueId: string, fileUniqueId: string): Observable<UserFile> {\n return from(this.ensureConfigured().userFiles.publish(userUniqueId, fileUniqueId));\n }\n\n /**\n * Unpublish a user file\n */\n unpublishUserFile(userUniqueId: string, fileUniqueId: string): Observable<UserFile> {\n return from(this.ensureConfigured().userFiles.unpublish(userUniqueId, fileUniqueId));\n }\n\n /**\n * Add tag to user file\n */\n addTagToUserFile(userUniqueId: string, fileUniqueId: string, tagUniqueId: string): Observable<UserFile> {\n return from(this.ensureConfigured().userFiles.addTag(userUniqueId, fileUniqueId, tagUniqueId));\n }\n\n /**\n * Remove tag from user file\n */\n removeTagFromUserFile(userUniqueId: string, fileUniqueId: string, tagUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().userFiles.removeTag(userUniqueId, fileUniqueId, tagUniqueId));\n }\n\n /**\n * Bulk update tags for user files\n */\n bulkUpdateUserFileTags(userUniqueId: string, tagUniqueIds: string[]): Observable<void> {\n return from(this.ensureConfigured().userFiles.bulkUpdateTags(userUniqueId, tagUniqueIds));\n }\n\n /**\n * Request access to a user file\n */\n requestUserFileAccess(userUniqueId: string, fileUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().userFiles.requestAccess(userUniqueId, fileUniqueId));\n }\n\n /**\n * Get access list for a user file\n */\n getUserFileAccess(userUniqueId: string, fileUniqueId: string): Observable<UserFileAccess[]> {\n return from(this.ensureConfigured().userFiles.getAccess(userUniqueId, fileUniqueId));\n }\n\n /**\n * Grant access to a user file\n */\n grantUserFileAccess(userUniqueId: string, fileUniqueId: string, data: UserFileAccessRequest): Observable<UserFileAccess> {\n return from(this.ensureConfigured().userFiles.grantAccess(userUniqueId, fileUniqueId, data));\n }\n\n /**\n * Revoke access to a user file\n */\n revokeUserFileAccess(userUniqueId: string, fileUniqueId: string, accessUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().userFiles.revokeAccess(userUniqueId, fileUniqueId, accessUniqueId));\n }\n\n /**\n * Make user file public\n */\n makeUserFilePublic(userUniqueId: string, fileUniqueId: string): Observable<UserFile> {\n return from(this.ensureConfigured().userFiles.makePublic(userUniqueId, fileUniqueId));\n }\n\n /**\n * Make user file private\n */\n makeUserFilePrivate(userUniqueId: string, fileUniqueId: string): Observable<UserFile> {\n return from(this.ensureConfigured().userFiles.makePrivate(userUniqueId, fileUniqueId));\n }\n\n /**\n * Bulk grant access to user files\n */\n bulkGrantUserFileAccess(userUniqueId: string, fileUniqueIds: string[], granteeUniqueIds: string[]): Observable<void> {\n return from(this.ensureConfigured().userFiles.bulkGrantAccess(userUniqueId, fileUniqueIds, granteeUniqueIds));\n }\n\n /**\n * Bulk revoke access to user files\n */\n bulkRevokeUserFileAccess(userUniqueId: string, fileUniqueIds: string[], granteeUniqueIds: string[]): Observable<void> {\n return from(this.ensureConfigured().userFiles.bulkRevokeAccess(userUniqueId, fileUniqueIds, granteeUniqueIds));\n }\n\n /**\n * List access requests for a user file\n */\n listUserFileAccessRequests(userUniqueId: string, fileUniqueId: string): Observable<UserFileAccess[]> {\n return from(this.ensureConfigured().userFiles.listAccessRequests(userUniqueId, fileUniqueId));\n }\n\n /**\n * Approve access request for a user file\n */\n approveUserFileAccessRequest(userUniqueId: string, fileUniqueId: string, requestUniqueId: string): Observable<UserFileAccess> {\n return from(this.ensureConfigured().userFiles.approveAccessRequest(userUniqueId, fileUniqueId, requestUniqueId));\n }\n\n /**\n * Deny access request for a user file\n */\n denyUserFileAccessRequest(userUniqueId: string, fileUniqueId: string, requestUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().userFiles.denyAccessRequest(userUniqueId, fileUniqueId, requestUniqueId));\n }\n\n /**\n * List granted delegations for a user\n */\n listUserGrantedDelegations(userUniqueId: string): Observable<UserFileDelegation[]> {\n return from(this.ensureConfigured().userFiles.listGrantedDelegations(userUniqueId));\n }\n\n /**\n * List received delegations for a user\n */\n listUserReceivedDelegations(userUniqueId: string): Observable<UserFileDelegation[]> {\n return from(this.ensureConfigured().userFiles.listReceivedDelegations(userUniqueId));\n }\n\n /**\n * Get a user delegation\n */\n getUserDelegation(userUniqueId: string, delegationUniqueId: string): Observable<UserFileDelegation> {\n return from(this.ensureConfigured().userFiles.getDelegation(userUniqueId, delegationUniqueId));\n }\n\n /**\n * Create a user delegation\n */\n createUserDelegation(userUniqueId: string, data: CreateDelegationRequest): Observable<UserFileDelegation> {\n return from(this.ensureConfigured().userFiles.createDelegation(userUniqueId, data));\n }\n\n /**\n * Revoke a user delegation\n */\n revokeUserDelegation(userUniqueId: string, delegationUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().userFiles.revokeDelegation(userUniqueId, delegationUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // File Categories Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List file categories\n */\n listFileCategories(params?: ListFileCategoriesParams): Observable<PageResult<FileCategory>> {\n return from(this.ensureConfigured().fileCategories.list(params));\n }\n\n /**\n * Get a file category\n */\n getFileCategory(uniqueId: string): Observable<FileCategory> {\n return from(this.ensureConfigured().fileCategories.get(uniqueId));\n }\n\n /**\n * Create a file category\n */\n createFileCategory(data: CreateFileCategoryRequest): Observable<FileCategory> {\n return from(this.ensureConfigured().fileCategories.create(data));\n }\n\n /**\n * Update a file category\n */\n updateFileCategory(uniqueId: string, data: UpdateFileCategoryRequest): Observable<FileCategory> {\n return from(this.ensureConfigured().fileCategories.update(uniqueId, data));\n }\n\n /**\n * Delete a file category\n */\n deleteFileCategory(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().fileCategories.delete(uniqueId));\n }\n\n /**\n * List children of a file category\n */\n listFileCategoryChildren(parentUniqueId: string): Observable<FileCategory[]> {\n return from(this.ensureConfigured().fileCategories.listChildren(parentUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // File Tags Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List file tags\n */\n listFileTags(params?: ListFileTagsParams): Observable<PageResult<FileTag>> {\n return from(this.ensureConfigured().fileTags.list(params));\n }\n\n /**\n * Get a file tag\n */\n getFileTag(uniqueId: string): Observable<FileTag> {\n return from(this.ensureConfigured().fileTags.get(uniqueId));\n }\n\n /**\n * Create a file tag\n */\n createFileTag(data: CreateFileTagRequest): Observable<FileTag> {\n return from(this.ensureConfigured().fileTags.create(data));\n }\n\n /**\n * Update a file tag\n */\n updateFileTag(uniqueId: string, data: UpdateFileTagRequest): Observable<FileTag> {\n return from(this.ensureConfigured().fileTags.update(uniqueId, data));\n }\n\n /**\n * Delete a file tag\n */\n deleteFileTag(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().fileTags.delete(uniqueId));\n }\n\n /**\n * Add a tag to a file\n */\n addFileTag(userUniqueId: string, fileUniqueId: string, tagUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().fileTags.addToFile(userUniqueId, fileUniqueId, tagUniqueId));\n }\n\n /**\n * Remove a tag from a file\n */\n removeFileTag(userUniqueId: string, fileUniqueId: string, tagUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().fileTags.removeFromFile(userUniqueId, fileUniqueId, tagUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Delegations Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List file delegations for a user\n */\n listDelegations(userUniqueId: string, params?: ListFileDelegationsParams): Observable<PageResult<FileDelegation>> {\n return from(this.ensureConfigured().delegations.list(userUniqueId, params));\n }\n\n /**\n * Get a file delegation\n */\n getDelegation(userUniqueId: string, uniqueId: string): Observable<FileDelegation> {\n return from(this.ensureConfigured().delegations.get(userUniqueId, uniqueId));\n }\n\n /**\n * Create a file delegation\n */\n createDelegation(userUniqueId: string, data: CreateFileDelegationRequest): Observable<FileDelegation> {\n return from(this.ensureConfigured().delegations.create(userUniqueId, data));\n }\n\n /**\n * Update a file delegation\n */\n updateDelegation(userUniqueId: string, uniqueId: string, data: UpdateFileDelegationRequest): Observable<FileDelegation> {\n return from(this.ensureConfigured().delegations.update(userUniqueId, uniqueId, data));\n }\n\n /**\n * Delete a file delegation\n */\n deleteDelegation(userUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().delegations.delete(userUniqueId, uniqueId));\n }\n\n /**\n * List received delegations for a user\n */\n listReceivedDelegations(userUniqueId: string): Observable<FileDelegation[]> {\n return from(this.ensureConfigured().delegations.listReceivedDelegations(userUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // File Access Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List file accesses\n */\n listFileAccess(params?: ListFileAccessParams): Observable<PageResult<FileAccess>> {\n return from(this.ensureConfigured().fileAccess.list(params));\n }\n\n /**\n * Get a file access\n */\n getFileAccess(uniqueId: string): Observable<FileAccess> {\n return from(this.ensureConfigured().fileAccess.get(uniqueId));\n }\n\n /**\n * Grant file access\n */\n grantFileAccess(data: CreateFileAccessRequest): Observable<FileAccess> {\n return from(this.ensureConfigured().fileAccess.grant(data));\n }\n\n /**\n * Update file access\n */\n updateFileAccess(uniqueId: string, data: UpdateFileAccessRequest): Observable<FileAccess> {\n return from(this.ensureConfigured().fileAccess.update(uniqueId, data));\n }\n\n /**\n * Revoke file access\n */\n revokeFileAccess(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().fileAccess.revoke(uniqueId));\n }\n\n /**\n * List file accesses by file\n */\n listFileAccessByFile(fileUniqueId: string, params?: ListFileAccessParams): Observable<PageResult<FileAccess>> {\n return from(this.ensureConfigured().fileAccess.listByFile(fileUniqueId, params));\n }\n\n /**\n * List file accesses by grantee\n */\n listFileAccessByGrantee(granteeUniqueId: string, granteeType: string, params?: ListFileAccessParams): Observable<PageResult<FileAccess>> {\n return from(this.ensureConfigured().fileAccess.listByGrantee(granteeUniqueId, granteeType, params));\n }\n\n /**\n * Check if a grantee has access to a file\n */\n checkFileAccess(fileUniqueId: string, granteeUniqueId: string): Observable<FileAccess | null> {\n return from(this.ensureConfigured().fileAccess.checkAccess(fileUniqueId, granteeUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // File Access Requests Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List file access requests\n */\n listFileAccessRequests(params?: ListFileAccessRequestsParams): Observable<PageResult<FileAccessRequest>> {\n return from(this.ensureConfigured().fileAccessRequests.list(params));\n }\n\n /**\n * Get a file access request\n */\n getFileAccessRequest(uniqueId: string): Observable<FileAccessRequest> {\n return from(this.ensureConfigured().fileAccessRequests.get(uniqueId));\n }\n\n /**\n * Create a file access request\n */\n createFileAccessRequest(data: CreateFileAccessRequestInput): Observable<FileAccessRequest> {\n return from(this.ensureConfigured().fileAccessRequests.create(data));\n }\n\n /**\n * Review (approve/reject) a file access request\n */\n reviewFileAccessRequest(uniqueId: string, review: ReviewFileAccessRequestInput): Observable<FileAccessRequest> {\n return from(this.ensureConfigured().fileAccessRequests.review(uniqueId, review));\n }\n\n /**\n * Cancel a file access request\n */\n cancelFileAccessRequest(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().fileAccessRequests.cancel(uniqueId));\n }\n\n /**\n * List access requests for a file\n */\n listAccessRequestsByFile(fileUniqueId: string, params?: ListFileAccessRequestsParams): Observable<PageResult<FileAccessRequest>> {\n return from(this.ensureConfigured().fileAccessRequests.listByFile(fileUniqueId, params));\n }\n\n /**\n * List access requests by requester\n */\n listAccessRequestsByRequester(requesterUniqueId: string, params?: ListFileAccessRequestsParams): Observable<PageResult<FileAccessRequest>> {\n return from(this.ensureConfigured().fileAccessRequests.listByRequester(requesterUniqueId, params));\n }\n\n /**\n * Get pending access requests count\n */\n getPendingAccessRequestsCount(): Observable<number> {\n return from(this.ensureConfigured().fileAccessRequests.getPendingCount());\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get filesBlock(): FilesBlock {\n return this.ensureConfigured();\n }\n}\n","// @ts-nocheck\nimport { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createFormsBlock,\n type FormsBlock,\n type FormsBlockConfig,\n type Form,\n type CreateFormRequest,\n type UpdateFormRequest,\n type ListFormsParams,\n type FormSchema,\n type CreateFormSchemaRequest,\n type UpdateFormSchemaRequest,\n type ListFormSchemasParams,\n type FormSchemaVersion,\n type CreateFormSchemaVersionRequest,\n type UpdateFormSchemaVersionRequest,\n type ListFormSchemaVersionsParams,\n type FormInstance,\n type CreateFormInstanceRequest,\n type UpdateFormInstanceRequest,\n type SubmitFormInstanceRequest,\n type ListFormInstancesParams,\n type FormSet,\n type CreateFormSetRequest,\n type UpdateFormSetRequest,\n type ListFormSetsParams,\n type Landing,\n type CreateLandingRequest,\n type UpdateLandingRequest,\n type ListLandingsParams,\n type Subscription,\n type CreateSubscriptionRequest,\n type UpdateSubscriptionRequest,\n type ListSubscriptionsParams,\n type Appointment,\n type CreateAppointmentRequest,\n type UpdateAppointmentRequest,\n type ListAppointmentsParams,\n type AppointmentReportRequest,\n type AppointmentReportSummary,\n type Survey,\n type SurveyStatus,\n type CreateSurveyRequest,\n type UpdateSurveyRequest,\n type UpdateSurveyStatusRequest,\n type ListSurveysParams,\n type Referral,\n type CreateReferralRequest,\n type UpdateReferralRequest,\n type ListReferralsParams,\n type MailTemplate,\n type CreateMailTemplateRequest,\n type UpdateMailTemplateRequest,\n type ListMailTemplatesParams,\n type ApplicationForm,\n type ApplicationFormSubmission,\n type ApplicationFormDraft,\n type ApplicationFormResponse,\n type SendOtpResponse,\n type VerifyOtpRequest,\n type CrmSyncResult,\n type CrmSyncBatchRequest,\n type CrmSyncBatchResult,\n type CrmConnectionStatus,\n type CrmSyncStatus,\n} from '@23blocks/block-forms';\nimport { TRANSPORT, FORMS_TRANSPORT, FORMS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Forms block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class FormComponent {\n * constructor(private formsService: FormsService) {}\n *\n * loadForms() {\n * this.formsService.listForms().subscribe({\n * next: (result) => console.log('Forms:', result.data),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\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 /**\n * Ensure the service is configured, throw helpful error if not\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 // ───────────────────────────────────────────────────────────────────────────\n // Forms Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listForms(params?: ListFormsParams): Observable<PageResult<Form>> {\n return from(this.ensureConfigured().forms.list(params));\n }\n\n getForm(uniqueId: string): Observable<Form> {\n return from(this.ensureConfigured().forms.get(uniqueId));\n }\n\n createForm(data: CreateFormRequest): Observable<Form> {\n return from(this.ensureConfigured().forms.create(data));\n }\n\n updateForm(uniqueId: string, data: UpdateFormRequest): Observable<Form> {\n return from(this.ensureConfigured().forms.update(uniqueId, data));\n }\n\n deleteForm(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().forms.delete(uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Form Schemas Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listFormSchemas(params?: ListFormSchemasParams): Observable<PageResult<FormSchema>> {\n return from(this.ensureConfigured().schemas.list(params));\n }\n\n getFormSchema(uniqueId: string): Observable<FormSchema> {\n return from(this.ensureConfigured().schemas.get(uniqueId));\n }\n\n createFormSchema(data: CreateFormSchemaRequest): Observable<FormSchema> {\n return from(this.ensureConfigured().schemas.create(data));\n }\n\n updateFormSchema(uniqueId: string, data: UpdateFormSchemaRequest): Observable<FormSchema> {\n return from(this.ensureConfigured().schemas.update(uniqueId, data));\n }\n\n deleteFormSchema(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().schemas.delete(uniqueId));\n }\n\n getLatestFormSchemaVersion(formUniqueId: string): Observable<FormSchema> {\n return from(this.ensureConfigured().schemas.getLatestVersion(formUniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Form Schema Versions Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listFormSchemaVersions(formSchemaUniqueId: string, params?: ListFormSchemaVersionsParams): Observable<PageResult<FormSchemaVersion>> {\n return from(this.ensureConfigured().schemaVersions.list(formSchemaUniqueId, params));\n }\n\n getFormSchemaVersion(formSchemaUniqueId: string, uniqueId: string): Observable<FormSchemaVersion> {\n return from(this.ensureConfigured().schemaVersions.get(formSchemaUniqueId, uniqueId));\n }\n\n createFormSchemaVersion(formSchemaUniqueId: string, data: CreateFormSchemaVersionRequest): Observable<FormSchemaVersion> {\n return from(this.ensureConfigured().schemaVersions.create(formSchemaUniqueId, data));\n }\n\n updateFormSchemaVersion(formSchemaUniqueId: string, uniqueId: string, data: UpdateFormSchemaVersionRequest): Observable<FormSchemaVersion> {\n return from(this.ensureConfigured().schemaVersions.update(formSchemaUniqueId, uniqueId, data));\n }\n\n deleteFormSchemaVersion(formSchemaUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().schemaVersions.delete(formSchemaUniqueId, uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Form Instances Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listFormInstances(params?: ListFormInstancesParams): Observable<PageResult<FormInstance>> {\n return from(this.ensureConfigured().instances.list(params));\n }\n\n getFormInstance(uniqueId: string): Observable<FormInstance> {\n return from(this.ensureConfigured().instances.get(uniqueId));\n }\n\n createFormInstance(data: CreateFormInstanceRequest): Observable<FormInstance> {\n return from(this.ensureConfigured().instances.create(data));\n }\n\n updateFormInstance(uniqueId: string, data: UpdateFormInstanceRequest): Observable<FormInstance> {\n return from(this.ensureConfigured().instances.update(uniqueId, data));\n }\n\n deleteFormInstance(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().instances.delete(uniqueId));\n }\n\n submitFormInstance(data: SubmitFormInstanceRequest): Observable<FormInstance> {\n return from(this.ensureConfigured().instances.submit(data));\n }\n\n listFormInstancesByUser(userUniqueId: string, params?: ListFormInstancesParams): Observable<PageResult<FormInstance>> {\n return from(this.ensureConfigured().instances.listByUser(userUniqueId, params));\n }\n\n listFormInstancesBySchema(formSchemaUniqueId: string, params?: ListFormInstancesParams): Observable<PageResult<FormInstance>> {\n return from(this.ensureConfigured().instances.listBySchema(formSchemaUniqueId, params));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Form Sets Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listFormSets(params?: ListFormSetsParams): Observable<PageResult<FormSet>> {\n return from(this.ensureConfigured().sets.list(params));\n }\n\n getFormSet(uniqueId: string): Observable<FormSet> {\n return from(this.ensureConfigured().sets.get(uniqueId));\n }\n\n createFormSet(data: CreateFormSetRequest): Observable<FormSet> {\n return from(this.ensureConfigured().sets.create(data));\n }\n\n updateFormSet(uniqueId: string, data: UpdateFormSetRequest): Observable<FormSet> {\n return from(this.ensureConfigured().sets.update(uniqueId, data));\n }\n\n deleteFormSet(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().sets.delete(uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Landings Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listLandings(formUniqueId: string, params?: ListLandingsParams): Observable<PageResult<Landing>> {\n return from(this.ensureConfigured().landings.list(formUniqueId, params));\n }\n\n getLanding(formUniqueId: string, uniqueId: string): Observable<Landing> {\n return from(this.ensureConfigured().landings.get(formUniqueId, uniqueId));\n }\n\n submitLanding(formUniqueId: string, data: CreateLandingRequest): Observable<Landing> {\n return from(this.ensureConfigured().landings.submit(formUniqueId, data));\n }\n\n updateLanding(formUniqueId: string, uniqueId: string, data: UpdateLandingRequest): Observable<Landing> {\n return from(this.ensureConfigured().landings.update(formUniqueId, uniqueId, data));\n }\n\n deleteLanding(formUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().landings.delete(formUniqueId, uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Subscriptions Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listSubscriptions(formUniqueId: string, params?: ListSubscriptionsParams): Observable<PageResult<Subscription>> {\n return from(this.ensureConfigured().subscriptions.list(formUniqueId, params));\n }\n\n getSubscription(formUniqueId: string, uniqueId: string): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.get(formUniqueId, uniqueId));\n }\n\n submitSubscription(formUniqueId: string, data: CreateSubscriptionRequest): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.submit(formUniqueId, data));\n }\n\n updateSubscription(formUniqueId: string, uniqueId: string, data: UpdateSubscriptionRequest): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.update(formUniqueId, uniqueId, data));\n }\n\n deleteSubscription(formUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().subscriptions.delete(formUniqueId, uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Appointments Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listAppointments(formUniqueId: string, params?: ListAppointmentsParams): Observable<PageResult<Appointment>> {\n return from(this.ensureConfigured().appointments.list(formUniqueId, params));\n }\n\n getAppointment(formUniqueId: string, uniqueId: string): Observable<Appointment> {\n return from(this.ensureConfigured().appointments.get(formUniqueId, uniqueId));\n }\n\n createAppointment(formUniqueId: string, data: CreateAppointmentRequest): Observable<Appointment> {\n return from(this.ensureConfigured().appointments.create(formUniqueId, data));\n }\n\n updateAppointment(formUniqueId: string, uniqueId: string, data: UpdateAppointmentRequest): Observable<Appointment> {\n return from(this.ensureConfigured().appointments.update(formUniqueId, uniqueId, data));\n }\n\n deleteAppointment(formUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().appointments.delete(formUniqueId, uniqueId));\n }\n\n confirmAppointment(formUniqueId: string, uniqueId: string): Observable<Appointment> {\n return from(this.ensureConfigured().appointments.confirm(formUniqueId, uniqueId));\n }\n\n cancelAppointment(formUniqueId: string, uniqueId: string): Observable<Appointment> {\n return from(this.ensureConfigured().appointments.cancel(formUniqueId, uniqueId));\n }\n\n getAppointmentReportList(data: AppointmentReportRequest): Observable<Appointment[]> {\n return from(this.ensureConfigured().appointments.reportList(data));\n }\n\n getAppointmentReportSummary(data: AppointmentReportRequest): Observable<AppointmentReportSummary> {\n return from(this.ensureConfigured().appointments.reportSummary(data));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Surveys Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listSurveys(formUniqueId: string, params?: ListSurveysParams): Observable<PageResult<Survey>> {\n return from(this.ensureConfigured().surveys.list(formUniqueId, params));\n }\n\n listSurveysByStatus(formUniqueId: string, status: SurveyStatus, params?: ListSurveysParams): Observable<PageResult<Survey>> {\n return from(this.ensureConfigured().surveys.listByStatus(formUniqueId, status, params));\n }\n\n getSurvey(formUniqueId: string, uniqueId: string): Observable<Survey> {\n return from(this.ensureConfigured().surveys.get(formUniqueId, uniqueId));\n }\n\n createSurvey(formUniqueId: string, data: CreateSurveyRequest): Observable<Survey> {\n return from(this.ensureConfigured().surveys.create(formUniqueId, data));\n }\n\n updateSurvey(formUniqueId: string, uniqueId: string, data: UpdateSurveyRequest): Observable<Survey> {\n return from(this.ensureConfigured().surveys.update(formUniqueId, uniqueId, data));\n }\n\n deleteSurvey(formUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().surveys.delete(formUniqueId, uniqueId));\n }\n\n updateSurveyStatus(formUniqueId: string, uniqueId: string, data: UpdateSurveyStatusRequest): Observable<Survey> {\n return from(this.ensureConfigured().surveys.updateStatus(formUniqueId, uniqueId, data));\n }\n\n resendSurveyMagicLink(formUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().surveys.resendMagicLink(formUniqueId, uniqueId));\n }\n\n listSurveysByUser(userUniqueId: string, params?: ListSurveysParams): Observable<PageResult<Survey>> {\n return from(this.ensureConfigured().surveys.listByUser(userUniqueId, params));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Referrals Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listReferrals(formUniqueId: string, params?: ListReferralsParams): Observable<PageResult<Referral>> {\n return from(this.ensureConfigured().referrals.list(formUniqueId, params));\n }\n\n getReferral(formUniqueId: string, uniqueId: string): Observable<Referral> {\n return from(this.ensureConfigured().referrals.get(formUniqueId, uniqueId));\n }\n\n createReferral(formUniqueId: string, data: CreateReferralRequest): Observable<Referral> {\n return from(this.ensureConfigured().referrals.create(formUniqueId, data));\n }\n\n updateReferral(formUniqueId: string, uniqueId: string, data: UpdateReferralRequest): Observable<Referral> {\n return from(this.ensureConfigured().referrals.update(formUniqueId, uniqueId, data));\n }\n\n deleteReferral(formUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().referrals.delete(formUniqueId, uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Mail Templates Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listMailTemplates(params?: ListMailTemplatesParams): Observable<PageResult<MailTemplate>> {\n return from(this.ensureConfigured().mailTemplates.list(params));\n }\n\n getMailTemplate(uniqueId: string): Observable<MailTemplate> {\n return from(this.ensureConfigured().mailTemplates.get(uniqueId));\n }\n\n createMailTemplate(data: CreateMailTemplateRequest): Observable<MailTemplate> {\n return from(this.ensureConfigured().mailTemplates.create(data));\n }\n\n updateMailTemplate(uniqueId: string, data: UpdateMailTemplateRequest): Observable<MailTemplate> {\n return from(this.ensureConfigured().mailTemplates.update(uniqueId, data));\n }\n\n deleteMailTemplate(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().mailTemplates.delete(uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Application Forms Service (magic link access)\n // ───────────────────────────────────────────────────────────────────────────\n\n /**\n * Get public form via magic link.\n * If OTP verification is required, returns form with verificationStatus: 'pending'\n * and limited fields (no schema/uiSchema until verified).\n */\n getApplicationForm(urlId: string): Observable<ApplicationForm> {\n return from(this.ensureConfigured().applicationForms.get(urlId));\n }\n\n submitApplicationForm(urlId: string, data: ApplicationFormSubmission): Observable<ApplicationFormResponse> {\n return from(this.ensureConfigured().applicationForms.submit(urlId, data));\n }\n\n saveApplicationFormDraft(urlId: string, data: ApplicationFormDraft): Observable<ApplicationFormResponse> {\n return from(this.ensureConfigured().applicationForms.draft(urlId, data));\n }\n\n /**\n * Send OTP verification code to user's email.\n * @throws Error with code RATE_LIMITED if called too frequently (60s cooldown)\n * @throws Error with code ALREADY_VERIFIED if form is already verified\n * @throws Error with code OTP_NOT_REQUIRED if form doesn't require OTP\n */\n sendApplicationFormOtp(urlId: string): Observable<SendOtpResponse> {\n return from(this.ensureConfigured().applicationForms.sendOtp(urlId));\n }\n\n /**\n * Verify OTP code and get full form access.\n * On success, returns full form with schema and fields.\n * @throws Error with code INVALID_CODE if code is wrong (includes attemptsRemaining)\n * @throws Error with code CODE_EXPIRED if code has expired (10 min lifetime)\n * @throws Error with code ATTEMPTS_EXCEEDED if max attempts (5) reached\n */\n verifyApplicationFormOtp(urlId: string, data: VerifyOtpRequest): Observable<ApplicationForm> {\n return from(this.ensureConfigured().applicationForms.verifyOtp(urlId, data));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // CRM Sync Service\n // ───────────────────────────────────────────────────────────────────────────\n\n syncLandingToCrm(uniqueId: string): Observable<CrmSyncResult> {\n return from(this.ensureConfigured().crmSync.syncLanding(uniqueId));\n }\n\n syncSubscriptionToCrm(uniqueId: string): Observable<CrmSyncResult> {\n return from(this.ensureConfigured().crmSync.syncSubscription(uniqueId));\n }\n\n syncAppointmentToCrm(uniqueId: string): Observable<CrmSyncResult> {\n return from(this.ensureConfigured().crmSync.syncAppointment(uniqueId));\n }\n\n batchSyncToCrm(data: CrmSyncBatchRequest): Observable<CrmSyncBatchResult> {\n return from(this.ensureConfigured().crmSync.batchSync(data));\n }\n\n retryFailedCrmSync(): Observable<CrmSyncBatchResult> {\n return from(this.ensureConfigured().crmSync.retryFailed());\n }\n\n testCrmConnection(): Observable<CrmConnectionStatus> {\n return from(this.ensureConfigured().crmSync.testConnection());\n }\n\n getCrmSyncStatus(): Observable<CrmSyncStatus> {\n return from(this.ensureConfigured().crmSync.status());\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Direct Block Access\n // ───────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying FormsBlock for advanced operations\n */\n get formsBlock(): FormsBlock {\n return this.ensureConfigured();\n }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createAssetsBlock,\n type AssetsBlock,\n type AssetsBlockConfig,\n type Asset,\n type CreateAssetRequest,\n type UpdateAssetRequest,\n type ListAssetsParams,\n type TransferAssetRequest,\n type AssignAssetRequest,\n type AddToCategoryRequest,\n type AddPartsRequest,\n type RemovePartsRequest,\n type UpdateMaintenanceRequest,\n type LendAssetRequest,\n type CreateOTPRequest,\n type OTPResponse,\n type AssetEvent,\n type CreateAssetEventRequest,\n type UpdateAssetEventRequest,\n type ListAssetEventsParams,\n type EventImagePresignResponse,\n type CreateEventImageRequest,\n type EventImage,\n type EventReportParams,\n type EventReportSummary,\n type EventReportList,\n type AssetAudit,\n type CreateAssetAuditRequest,\n type UpdateAssetAuditRequest,\n type ListAssetAuditsParams,\n type Category,\n type CreateCategoryRequest,\n type UpdateCategoryRequest,\n type ListCategoriesParams,\n type CategoryPresignResponse,\n type CreateCategoryImageRequest,\n type CategoryImage,\n type Tag,\n type CreateTagRequest,\n type UpdateTagRequest,\n type ListTagsParams,\n type Vendor,\n type CreateVendorRequest,\n type UpdateVendorRequest,\n type ListVendorsParams,\n type Warehouse,\n type CreateWarehouseRequest,\n type UpdateWarehouseRequest,\n type ListWarehousesParams,\n type AssetsEntity,\n type CreateAssetsEntityRequest,\n type UpdateAssetsEntityRequest,\n type ListAssetsEntitiesParams,\n type EntityAccess,\n type AccessRequest,\n type CreateAccessRequestRequest,\n type AssetOperation,\n type CreateAssetOperationRequest,\n type ListAssetOperationsParams,\n type OperationReportParams,\n type OperationReportSummary,\n type AssetAlert,\n type CreateAssetAlertRequest,\n type AssetsUser,\n type RegisterAssetsUserRequest,\n type UpdateAssetsUserRequest,\n type ListAssetsUsersParams,\n type UserOwnership,\n type AssetPresignResponse,\n type CreateAssetImageRequest,\n type AssetImage,\n} from '@23blocks/block-assets';\nimport { TRANSPORT, ASSETS_TRANSPORT, ASSETS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Assets block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class AssetManagementComponent {\n * constructor(private assets: AssetsService) {}\n *\n * loadAssets() {\n * this.assets.listAssets().subscribe({\n * next: (result) => console.log('Assets:', result.data),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\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 /**\n * Ensure the service is configured, throw helpful error if not\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 // ───────────────────────────────────────────────────────────────────────────\n // Assets Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listAssets(params?: ListAssetsParams): Observable<PageResult<Asset>> {\n return from(this.ensureConfigured().assets.list(params));\n }\n\n getAsset(uniqueId: string): Observable<Asset> {\n return from(this.ensureConfigured().assets.get(uniqueId));\n }\n\n createAsset(data: CreateAssetRequest): Observable<Asset> {\n return from(this.ensureConfigured().assets.create(data));\n }\n\n updateAsset(uniqueId: string, data: UpdateAssetRequest): Observable<Asset> {\n return from(this.ensureConfigured().assets.update(uniqueId, data));\n }\n\n deleteAsset(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().assets.delete(uniqueId));\n }\n\n listAssetsTrash(): Observable<PageResult<Asset>> {\n return from(this.ensureConfigured().assets.listTrash());\n }\n\n transferAsset(uniqueId: string, data: TransferAssetRequest): Observable<Asset> {\n return from(this.ensureConfigured().assets.transfer(uniqueId, data));\n }\n\n assignAsset(uniqueId: string, data: AssignAssetRequest): Observable<Asset> {\n return from(this.ensureConfigured().assets.assign(uniqueId, data));\n }\n\n unassignAsset(uniqueId: string): Observable<Asset> {\n return from(this.ensureConfigured().assets.unassign(uniqueId));\n }\n\n listAssetsByLocation(locationUniqueId: string, params?: ListAssetsParams): Observable<PageResult<Asset>> {\n return from(this.ensureConfigured().assets.listByLocation(locationUniqueId, params));\n }\n\n listAssetsByAssignee(assignedToUniqueId: string, params?: ListAssetsParams): Observable<PageResult<Asset>> {\n return from(this.ensureConfigured().assets.listByAssignee(assignedToUniqueId, params));\n }\n\n addAssetToCategory(uniqueId: string, data: AddToCategoryRequest): Observable<Asset> {\n return from(this.ensureConfigured().assets.addToCategory(uniqueId, data));\n }\n\n addAssetParts(uniqueId: string, data: AddPartsRequest): Observable<Asset> {\n return from(this.ensureConfigured().assets.addParts(uniqueId, data));\n }\n\n removeAssetParts(uniqueId: string, data: RemovePartsRequest): Observable<Asset> {\n return from(this.ensureConfigured().assets.removeParts(uniqueId, data));\n }\n\n updateAssetMaintenance(uniqueId: string, data: UpdateMaintenanceRequest): Observable<Asset> {\n return from(this.ensureConfigured().assets.updateMaintenance(uniqueId, data));\n }\n\n lendAsset(uniqueId: string, data: LendAssetRequest): Observable<Asset> {\n return from(this.ensureConfigured().assets.lend(uniqueId, data));\n }\n\n createAssetOTP(uniqueId: string, data?: CreateOTPRequest): Observable<OTPResponse> {\n return from(this.ensureConfigured().assets.createOTP(uniqueId, data));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Asset Events Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listAssetEvents(assetUniqueId: string, params?: ListAssetEventsParams): Observable<PageResult<AssetEvent>> {\n return from(this.ensureConfigured().events.list(assetUniqueId, params));\n }\n\n getAssetEvent(assetUniqueId: string, eventUniqueId: string): Observable<AssetEvent> {\n return from(this.ensureConfigured().events.get(assetUniqueId, eventUniqueId));\n }\n\n createAssetEvent(assetUniqueId: string, data: CreateAssetEventRequest): Observable<AssetEvent> {\n return from(this.ensureConfigured().events.create(assetUniqueId, data));\n }\n\n updateAssetEvent(assetUniqueId: string, eventUniqueId: string, data: UpdateAssetEventRequest): Observable<AssetEvent> {\n return from(this.ensureConfigured().events.update(assetUniqueId, eventUniqueId, data));\n }\n\n getEventReportList(params: EventReportParams): Observable<EventReportList> {\n return from(this.ensureConfigured().events.reportList(params));\n }\n\n getEventReportSummary(params: EventReportParams): Observable<EventReportSummary> {\n return from(this.ensureConfigured().events.reportSummary(params));\n }\n\n presignEventImage(assetUniqueId: string, eventUniqueId: string): Observable<EventImagePresignResponse> {\n return from(this.ensureConfigured().events.presignImage(assetUniqueId, eventUniqueId));\n }\n\n createEventImage(assetUniqueId: string, eventUniqueId: string, data: CreateEventImageRequest): Observable<EventImage> {\n return from(this.ensureConfigured().events.createImage(assetUniqueId, eventUniqueId, data));\n }\n\n deleteEventImage(assetUniqueId: string, eventUniqueId: string, imageUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().events.deleteImage(assetUniqueId, eventUniqueId, imageUniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Asset Audits Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listAssetAudits(assetUniqueId: string, params?: ListAssetAuditsParams): Observable<PageResult<AssetAudit>> {\n return from(this.ensureConfigured().audits.list(assetUniqueId, params));\n }\n\n getAssetAudit(assetUniqueId: string, auditUniqueId: string): Observable<AssetAudit> {\n return from(this.ensureConfigured().audits.get(assetUniqueId, auditUniqueId));\n }\n\n createAssetAudit(assetUniqueId: string, data: CreateAssetAuditRequest): Observable<AssetAudit> {\n return from(this.ensureConfigured().audits.create(assetUniqueId, data));\n }\n\n updateAssetAudit(assetUniqueId: string, auditUniqueId: string, data: UpdateAssetAuditRequest): Observable<AssetAudit> {\n return from(this.ensureConfigured().audits.update(assetUniqueId, auditUniqueId, data));\n }\n\n deleteAssetAudit(assetUniqueId: string, auditUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().audits.delete(assetUniqueId, auditUniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Categories Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listCategories(params?: ListCategoriesParams): Observable<PageResult<Category>> {\n return from(this.ensureConfigured().categories.list(params));\n }\n\n getCategory(uniqueId: string): Observable<Category> {\n return from(this.ensureConfigured().categories.get(uniqueId));\n }\n\n createCategory(data: CreateCategoryRequest): Observable<Category> {\n return from(this.ensureConfigured().categories.create(data));\n }\n\n updateCategory(uniqueId: string, data: UpdateCategoryRequest): Observable<Category> {\n return from(this.ensureConfigured().categories.update(uniqueId, data));\n }\n\n deleteCategory(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().categories.delete(uniqueId));\n }\n\n deleteCategoryCascade(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().categories.deleteCascade(uniqueId));\n }\n\n presignCategoryImage(uniqueId: string): Observable<CategoryPresignResponse> {\n return from(this.ensureConfigured().categories.presignImage(uniqueId));\n }\n\n createCategoryImage(uniqueId: string, data: CreateCategoryImageRequest): Observable<CategoryImage> {\n return from(this.ensureConfigured().categories.createImage(uniqueId, data));\n }\n\n deleteCategoryImage(uniqueId: string, imageUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().categories.deleteImage(uniqueId, imageUniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Tags Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listTags(params?: ListTagsParams): Observable<PageResult<Tag>> {\n return from(this.ensureConfigured().tags.list(params));\n }\n\n getTag(uniqueId: string): Observable<Tag> {\n return from(this.ensureConfigured().tags.get(uniqueId));\n }\n\n createTag(data: CreateTagRequest): Observable<Tag> {\n return from(this.ensureConfigured().tags.create(data));\n }\n\n updateTag(uniqueId: string, data: UpdateTagRequest): Observable<Tag> {\n return from(this.ensureConfigured().tags.update(uniqueId, data));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Vendors Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listVendors(params?: ListVendorsParams): Observable<PageResult<Vendor>> {\n return from(this.ensureConfigured().vendors.list(params));\n }\n\n getVendor(uniqueId: string): Observable<Vendor> {\n return from(this.ensureConfigured().vendors.get(uniqueId));\n }\n\n createVendor(data: CreateVendorRequest): Observable<Vendor> {\n return from(this.ensureConfigured().vendors.create(data));\n }\n\n updateVendor(uniqueId: string, data: UpdateVendorRequest): Observable<Vendor> {\n return from(this.ensureConfigured().vendors.update(uniqueId, data));\n }\n\n deleteVendor(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().vendors.delete(uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Warehouses Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listWarehouses(params?: ListWarehousesParams): Observable<PageResult<Warehouse>> {\n return from(this.ensureConfigured().warehouses.list(params));\n }\n\n getWarehouse(uniqueId: string): Observable<Warehouse> {\n return from(this.ensureConfigured().warehouses.get(uniqueId));\n }\n\n createWarehouse(data: CreateWarehouseRequest): Observable<Warehouse> {\n return from(this.ensureConfigured().warehouses.create(data));\n }\n\n updateWarehouse(uniqueId: string, data: UpdateWarehouseRequest): Observable<Warehouse> {\n return from(this.ensureConfigured().warehouses.update(uniqueId, data));\n }\n\n deleteWarehouse(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().warehouses.delete(uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Entities Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listEntities(params?: ListAssetsEntitiesParams): Observable<PageResult<AssetsEntity>> {\n return from(this.ensureConfigured().entities.list(params));\n }\n\n getEntity(uniqueId: string): Observable<AssetsEntity> {\n return from(this.ensureConfigured().entities.get(uniqueId));\n }\n\n createEntity(data: CreateAssetsEntityRequest): Observable<AssetsEntity> {\n return from(this.ensureConfigured().entities.create(data));\n }\n\n updateEntity(uniqueId: string, data: UpdateAssetsEntityRequest): Observable<AssetsEntity> {\n return from(this.ensureConfigured().entities.update(uniqueId, data));\n }\n\n deleteEntity(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().entities.delete(uniqueId));\n }\n\n listEntityAccesses(uniqueId: string): Observable<EntityAccess[]> {\n return from(this.ensureConfigured().entities.listAccesses(uniqueId));\n }\n\n getEntityAccess(uniqueId: string): Observable<EntityAccess> {\n return from(this.ensureConfigured().entities.getAccess(uniqueId));\n }\n\n makeEntityPublic(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().entities.makePublic(uniqueId));\n }\n\n revokeEntityAccess(uniqueId: string, accessUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().entities.revokeAccess(uniqueId, accessUniqueId));\n }\n\n requestEntityAccess(uniqueId: string, data: CreateAccessRequestRequest): Observable<AccessRequest> {\n return from(this.ensureConfigured().entities.requestAccess(uniqueId, data));\n }\n\n listEntityAccessRequests(uniqueId: string): Observable<AccessRequest[]> {\n return from(this.ensureConfigured().entities.listAccessRequests(uniqueId));\n }\n\n approveEntityAccessRequest(uniqueId: string, requestUniqueId: string): Observable<AccessRequest> {\n return from(this.ensureConfigured().entities.approveAccessRequest(uniqueId, requestUniqueId));\n }\n\n denyEntityAccessRequest(uniqueId: string, requestUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().entities.denyAccessRequest(uniqueId, requestUniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Operations Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listAssetOperations(assetUniqueId: string, params?: ListAssetOperationsParams): Observable<PageResult<AssetOperation>> {\n return from(this.ensureConfigured().operations.list(assetUniqueId, params));\n }\n\n getAssetOperation(assetUniqueId: string, operationUniqueId: string): Observable<AssetOperation> {\n return from(this.ensureConfigured().operations.get(assetUniqueId, operationUniqueId));\n }\n\n createAssetOperation(assetUniqueId: string, data: CreateAssetOperationRequest): Observable<AssetOperation> {\n return from(this.ensureConfigured().operations.create(assetUniqueId, data));\n }\n\n getOperationReportSummary(params: OperationReportParams): Observable<OperationReportSummary> {\n return from(this.ensureConfigured().operations.reportSummary(params));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Alerts Service\n // ───────────────────────────────────────────────────────────────────────────\n\n getAlert(uniqueId: string): Observable<AssetAlert> {\n return from(this.ensureConfigured().alerts.get(uniqueId));\n }\n\n createAlert(data: CreateAssetAlertRequest): Observable<AssetAlert> {\n return from(this.ensureConfigured().alerts.create(data));\n }\n\n deleteAlert(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().alerts.delete(uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Users Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listAssetsUsers(params?: ListAssetsUsersParams): Observable<PageResult<AssetsUser>> {\n return from(this.ensureConfigured().users.list(params));\n }\n\n getAssetsUser(uniqueId: string): Observable<AssetsUser> {\n return from(this.ensureConfigured().users.get(uniqueId));\n }\n\n registerAssetsUser(uniqueId: string, data: RegisterAssetsUserRequest): Observable<AssetsUser> {\n return from(this.ensureConfigured().users.register(uniqueId, data));\n }\n\n updateAssetsUser(uniqueId: string, data: UpdateAssetsUserRequest): Observable<AssetsUser> {\n return from(this.ensureConfigured().users.update(uniqueId, data));\n }\n\n listUserEntities(uniqueId: string): Observable<AssetsEntity[]> {\n return from(this.ensureConfigured().users.listEntities(uniqueId));\n }\n\n listUserAssets(uniqueId: string): Observable<Asset[]> {\n return from(this.ensureConfigured().users.listAssets(uniqueId));\n }\n\n listUserOwnership(uniqueId: string): Observable<UserOwnership[]> {\n return from(this.ensureConfigured().users.listOwnership(uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Images Service\n // ───────────────────────────────────────────────────────────────────────────\n\n presignAssetImage(assetUniqueId: string): Observable<AssetPresignResponse> {\n return from(this.ensureConfigured().images.presign(assetUniqueId));\n }\n\n createAssetImage(assetUniqueId: string, data: CreateAssetImageRequest): Observable<AssetImage> {\n return from(this.ensureConfigured().images.create(assetUniqueId, data));\n }\n\n deleteAssetImage(assetUniqueId: string, imageUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().images.delete(assetUniqueId, imageUniqueId));\n }\n\n presignAssetEventImage(assetUniqueId: string, eventUniqueId: string): Observable<AssetPresignResponse> {\n return from(this.ensureConfigured().images.presignEvent(assetUniqueId, eventUniqueId));\n }\n\n createAssetEventImage(assetUniqueId: string, eventUniqueId: string, data: CreateAssetImageRequest): Observable<AssetImage> {\n return from(this.ensureConfigured().images.createEventImage(assetUniqueId, eventUniqueId, data));\n }\n\n deleteAssetEventImage(assetUniqueId: string, eventUniqueId: string, imageUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().images.deleteEventImage(assetUniqueId, eventUniqueId, imageUniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ───────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get assetsBlock(): AssetsBlock {\n return this.ensureConfigured();\n }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createCampaignsBlock,\n type CampaignsBlock,\n type CampaignsBlockConfig,\n type Campaign,\n type CreateCampaignRequest,\n type UpdateCampaignRequest,\n type ListCampaignsParams,\n type CampaignResults,\n type CampaignMedia,\n type CreateCampaignMediaRequest,\n type UpdateCampaignMediaRequest,\n type ListCampaignMediaParams,\n type CampaignMediaResults,\n type LandingPage,\n type CreateLandingPageRequest,\n type UpdateLandingPageRequest,\n type ListLandingPagesParams,\n type Audience,\n type AudienceMember,\n type CreateAudienceRequest,\n type UpdateAudienceRequest,\n type ListAudiencesParams,\n type LandingTemplate,\n type CreateLandingTemplateRequest,\n type UpdateLandingTemplateRequest,\n type ListLandingTemplatesParams,\n type CampaignTarget,\n type CreateCampaignTargetRequest,\n type UpdateCampaignTargetRequest,\n type ListCampaignTargetsParams,\n type CampaignResult,\n type CreateCampaignResultRequest,\n type UpdateCampaignResultRequest,\n type ListCampaignResultsParams,\n type CampaignMarket,\n type CreateCampaignMarketRequest,\n type UpdateCampaignMarketRequest,\n type ListCampaignMarketsParams,\n type CampaignLocation,\n type CreateCampaignLocationRequest,\n type UpdateCampaignLocationRequest,\n type ListCampaignLocationsParams,\n type CampaignTemplate,\n type CreateCampaignTemplateRequest,\n type UpdateCampaignTemplateRequest,\n type ListCampaignTemplatesParams,\n type TemplateDetail,\n type CreateTemplateDetailRequest,\n type UpdateTemplateDetailRequest,\n type ListTemplateDetailsParams,\n type CampaignMediaResult,\n type CreateCampaignMediaResultRequest,\n type UpdateCampaignMediaResultRequest,\n type ListCampaignMediaResultsParams,\n type Media,\n type CreateMediaRequest,\n type UpdateMediaRequest,\n type ListMediaParams,\n} from '@23blocks/block-campaigns';\nimport { TRANSPORT, CAMPAIGNS_TRANSPORT, CAMPAIGNS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Campaigns block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class CampaignsComponent {\n * constructor(private campaigns: CampaignsService) {}\n *\n * loadCampaigns() {\n * this.campaigns.listCampaigns({ page: 1, perPage: 10 }).subscribe({\n * next: (result) => console.log('Campaigns:', result.data),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\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 /**\n * Ensure the service is configured, throw helpful error if not\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 // ─────────────────────────────────────────────────────────────────────────────\n // Campaigns Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCampaigns(params?: ListCampaignsParams): Observable<PageResult<Campaign>> {\n return from(this.ensureConfigured().campaigns.list(params));\n }\n\n getCampaign(uniqueId: string): Observable<Campaign> {\n return from(this.ensureConfigured().campaigns.get(uniqueId));\n }\n\n createCampaign(data: CreateCampaignRequest): Observable<Campaign> {\n return from(this.ensureConfigured().campaigns.create(data));\n }\n\n updateCampaign(uniqueId: string, data: UpdateCampaignRequest): Observable<Campaign> {\n return from(this.ensureConfigured().campaigns.update(uniqueId, data));\n }\n\n deleteCampaign(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().campaigns.delete(uniqueId));\n }\n\n startCampaign(uniqueId: string): Observable<Campaign> {\n return from(this.ensureConfigured().campaigns.start(uniqueId));\n }\n\n pauseCampaign(uniqueId: string): Observable<Campaign> {\n return from(this.ensureConfigured().campaigns.pause(uniqueId));\n }\n\n stopCampaign(uniqueId: string): Observable<Campaign> {\n return from(this.ensureConfigured().campaigns.stop(uniqueId));\n }\n\n getCampaignResults(uniqueId: string): Observable<CampaignResults> {\n return from(this.ensureConfigured().campaigns.getResults(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Campaign Media Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCampaignMedia(params?: ListCampaignMediaParams): Observable<PageResult<CampaignMedia>> {\n return from(this.ensureConfigured().campaignMedia.list(params));\n }\n\n getCampaignMedia(uniqueId: string): Observable<CampaignMedia> {\n return from(this.ensureConfigured().campaignMedia.get(uniqueId));\n }\n\n createCampaignMedia(data: CreateCampaignMediaRequest): Observable<CampaignMedia> {\n return from(this.ensureConfigured().campaignMedia.create(data));\n }\n\n updateCampaignMedia(uniqueId: string, data: UpdateCampaignMediaRequest): Observable<CampaignMedia> {\n return from(this.ensureConfigured().campaignMedia.update(uniqueId, data));\n }\n\n deleteCampaignMedia(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().campaignMedia.delete(uniqueId));\n }\n\n listCampaignMediaByCampaign(campaignUniqueId: string): Observable<CampaignMedia[]> {\n return from(this.ensureConfigured().campaignMedia.listByCampaign(campaignUniqueId));\n }\n\n getCampaignMediaResults(uniqueId: string): Observable<CampaignMediaResults> {\n return from(this.ensureConfigured().campaignMedia.getResults(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Landing Pages Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listLandingPages(params?: ListLandingPagesParams): Observable<PageResult<LandingPage>> {\n return from(this.ensureConfigured().landingPages.list(params));\n }\n\n getLandingPage(uniqueId: string): Observable<LandingPage> {\n return from(this.ensureConfigured().landingPages.get(uniqueId));\n }\n\n createLandingPage(data: CreateLandingPageRequest): Observable<LandingPage> {\n return from(this.ensureConfigured().landingPages.create(data));\n }\n\n updateLandingPage(uniqueId: string, data: UpdateLandingPageRequest): Observable<LandingPage> {\n return from(this.ensureConfigured().landingPages.update(uniqueId, data));\n }\n\n deleteLandingPage(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().landingPages.delete(uniqueId));\n }\n\n publishLandingPage(uniqueId: string): Observable<LandingPage> {\n return from(this.ensureConfigured().landingPages.publish(uniqueId));\n }\n\n unpublishLandingPage(uniqueId: string): Observable<LandingPage> {\n return from(this.ensureConfigured().landingPages.unpublish(uniqueId));\n }\n\n getLandingPageBySlug(slug: string): Observable<LandingPage> {\n return from(this.ensureConfigured().landingPages.getBySlug(slug));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Audiences Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listAudiences(params?: ListAudiencesParams): Observable<PageResult<Audience>> {\n return from(this.ensureConfigured().audiences.list(params));\n }\n\n getAudience(uniqueId: string): Observable<Audience> {\n return from(this.ensureConfigured().audiences.get(uniqueId));\n }\n\n createAudience(data: CreateAudienceRequest): Observable<Audience> {\n return from(this.ensureConfigured().audiences.create(data));\n }\n\n updateAudience(uniqueId: string, data: UpdateAudienceRequest): Observable<Audience> {\n return from(this.ensureConfigured().audiences.update(uniqueId, data));\n }\n\n deleteAudience(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().audiences.delete(uniqueId));\n }\n\n getAudienceMembers(uniqueId: string): Observable<AudienceMember[]> {\n return from(this.ensureConfigured().audiences.getMembers(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Landing Templates Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listLandingTemplates(params?: ListLandingTemplatesParams): Observable<PageResult<LandingTemplate>> {\n return from(this.ensureConfigured().landingTemplates.list(params));\n }\n\n getLandingTemplate(uniqueId: string): Observable<LandingTemplate> {\n return from(this.ensureConfigured().landingTemplates.get(uniqueId));\n }\n\n createLandingTemplate(data: CreateLandingTemplateRequest): Observable<LandingTemplate> {\n return from(this.ensureConfigured().landingTemplates.create(data));\n }\n\n updateLandingTemplate(uniqueId: string, data: UpdateLandingTemplateRequest): Observable<LandingTemplate> {\n return from(this.ensureConfigured().landingTemplates.update(uniqueId, data));\n }\n\n deleteLandingTemplate(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().landingTemplates.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Campaign Targets Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCampaignTargets(params?: ListCampaignTargetsParams): Observable<PageResult<CampaignTarget>> {\n return from(this.ensureConfigured().targets.list(params));\n }\n\n getCampaignTarget(uniqueId: string): Observable<CampaignTarget> {\n return from(this.ensureConfigured().targets.get(uniqueId));\n }\n\n createCampaignTarget(data: CreateCampaignTargetRequest): Observable<CampaignTarget> {\n return from(this.ensureConfigured().targets.create(data));\n }\n\n updateCampaignTarget(uniqueId: string, data: UpdateCampaignTargetRequest): Observable<CampaignTarget> {\n return from(this.ensureConfigured().targets.update(uniqueId, data));\n }\n\n deleteCampaignTarget(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().targets.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Campaign Results Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCampaignResultsData(params?: ListCampaignResultsParams): Observable<PageResult<CampaignResult>> {\n return from(this.ensureConfigured().results.list(params));\n }\n\n getCampaignResult(uniqueId: string): Observable<CampaignResult> {\n return from(this.ensureConfigured().results.get(uniqueId));\n }\n\n createCampaignResult(data: CreateCampaignResultRequest): Observable<CampaignResult> {\n return from(this.ensureConfigured().results.create(data));\n }\n\n updateCampaignResult(uniqueId: string, data: UpdateCampaignResultRequest): Observable<CampaignResult> {\n return from(this.ensureConfigured().results.update(uniqueId, data));\n }\n\n deleteCampaignResult(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().results.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Campaign Markets Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCampaignMarkets(params?: ListCampaignMarketsParams): Observable<PageResult<CampaignMarket>> {\n return from(this.ensureConfigured().markets.list(params));\n }\n\n getCampaignMarket(uniqueId: string): Observable<CampaignMarket> {\n return from(this.ensureConfigured().markets.get(uniqueId));\n }\n\n createCampaignMarket(data: CreateCampaignMarketRequest): Observable<CampaignMarket> {\n return from(this.ensureConfigured().markets.create(data));\n }\n\n updateCampaignMarket(uniqueId: string, data: UpdateCampaignMarketRequest): Observable<CampaignMarket> {\n return from(this.ensureConfigured().markets.update(uniqueId, data));\n }\n\n deleteCampaignMarket(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().markets.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Campaign Locations Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCampaignLocations(params?: ListCampaignLocationsParams): Observable<PageResult<CampaignLocation>> {\n return from(this.ensureConfigured().locations.list(params));\n }\n\n getCampaignLocation(uniqueId: string): Observable<CampaignLocation> {\n return from(this.ensureConfigured().locations.get(uniqueId));\n }\n\n createCampaignLocation(data: CreateCampaignLocationRequest): Observable<CampaignLocation> {\n return from(this.ensureConfigured().locations.create(data));\n }\n\n updateCampaignLocation(uniqueId: string, data: UpdateCampaignLocationRequest): Observable<CampaignLocation> {\n return from(this.ensureConfigured().locations.update(uniqueId, data));\n }\n\n deleteCampaignLocation(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().locations.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Campaign Templates Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCampaignTemplates(params?: ListCampaignTemplatesParams): Observable<PageResult<CampaignTemplate>> {\n return from(this.ensureConfigured().templates.list(params));\n }\n\n getCampaignTemplate(uniqueId: string): Observable<CampaignTemplate> {\n return from(this.ensureConfigured().templates.get(uniqueId));\n }\n\n createCampaignTemplate(data: CreateCampaignTemplateRequest): Observable<CampaignTemplate> {\n return from(this.ensureConfigured().templates.create(data));\n }\n\n updateCampaignTemplate(uniqueId: string, data: UpdateCampaignTemplateRequest): Observable<CampaignTemplate> {\n return from(this.ensureConfigured().templates.update(uniqueId, data));\n }\n\n deleteCampaignTemplate(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().templates.delete(uniqueId));\n }\n\n listTemplateDetails(params?: ListTemplateDetailsParams): Observable<PageResult<TemplateDetail>> {\n return from(this.ensureConfigured().templates.listDetails(params));\n }\n\n getTemplateDetail(uniqueId: string): Observable<TemplateDetail> {\n return from(this.ensureConfigured().templates.getDetail(uniqueId));\n }\n\n createTemplateDetail(data: CreateTemplateDetailRequest): Observable<TemplateDetail> {\n return from(this.ensureConfigured().templates.createDetail(data));\n }\n\n updateTemplateDetail(uniqueId: string, data: UpdateTemplateDetailRequest): Observable<TemplateDetail> {\n return from(this.ensureConfigured().templates.updateDetail(uniqueId, data));\n }\n\n deleteTemplateDetail(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().templates.deleteDetail(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Campaign Media Results Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCampaignMediaResultsData(params?: ListCampaignMediaResultsParams): Observable<PageResult<CampaignMediaResult>> {\n return from(this.ensureConfigured().mediaResults.list(params));\n }\n\n getCampaignMediaResultData(uniqueId: string): Observable<CampaignMediaResult> {\n return from(this.ensureConfigured().mediaResults.get(uniqueId));\n }\n\n createCampaignMediaResultData(data: CreateCampaignMediaResultRequest): Observable<CampaignMediaResult> {\n return from(this.ensureConfigured().mediaResults.create(data));\n }\n\n updateCampaignMediaResultData(uniqueId: string, data: UpdateCampaignMediaResultRequest): Observable<CampaignMediaResult> {\n return from(this.ensureConfigured().mediaResults.update(uniqueId, data));\n }\n\n deleteCampaignMediaResultData(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().mediaResults.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Media Service (Medium entities - TV, Radio, Digital channels)\n // ─────────────────────────────────────────────────────────────────────────────\n\n listMedia(params?: ListMediaParams): Observable<PageResult<Media>> {\n return from(this.ensureConfigured().media.list(params));\n }\n\n getMedia(uniqueId: string): Observable<Media> {\n return from(this.ensureConfigured().media.get(uniqueId));\n }\n\n createMedia(data: CreateMediaRequest): Observable<Media> {\n return from(this.ensureConfigured().media.create(data));\n }\n\n updateMedia(uniqueId: string, data: UpdateMediaRequest): Observable<Media> {\n return from(this.ensureConfigured().media.update(uniqueId, data));\n }\n\n deleteMedia(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().media.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get campaignsBlock(): CampaignsBlock {\n return this.ensureConfigured();\n }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createCompanyBlock,\n type CompanyBlock,\n type CompanyBlockConfig,\n type Company,\n type CreateCompanyRequest,\n type UpdateCompanyRequest,\n type ListCompaniesParams,\n type Department,\n type DepartmentHierarchy,\n type CreateDepartmentRequest,\n type UpdateDepartmentRequest,\n type ListDepartmentsParams,\n type Team,\n type CreateTeamRequest,\n type UpdateTeamRequest,\n type ListTeamsParams,\n type TeamMember,\n type AddTeamMemberRequest,\n type UpdateTeamMemberRequest,\n type ListTeamMembersParams,\n type Quarter,\n type CreateQuarterRequest,\n type UpdateQuarterRequest,\n type ListQuartersParams,\n type Position,\n type CreatePositionRequest,\n type UpdatePositionRequest,\n type ListPositionsParams,\n type EmployeeAssignment,\n type CreateEmployeeAssignmentRequest,\n type UpdateEmployeeAssignmentRequest,\n type ListEmployeeAssignmentsParams,\n} from '@23blocks/block-company';\nimport { TRANSPORT, COMPANY_TRANSPORT, COMPANY_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Company block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class CompanyComponent {\n * constructor(private company: CompanyService) {}\n *\n * createCompany(name: string) {\n * this.company.createCompany({ name, code: 'COMP001' }).subscribe({\n * next: (company) => console.log('Company created:', company),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\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 /**\n * Ensure the service is configured, throw helpful error if not\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 // ─────────────────────────────────────────────────────────────────────────────\n // Companies Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCompanies(params?: ListCompaniesParams): Observable<PageResult<Company>> {\n return from(this.ensureConfigured().companies.list(params));\n }\n\n getCompany(uniqueId: string): Observable<Company> {\n return from(this.ensureConfigured().companies.get(uniqueId));\n }\n\n createCompany(request: CreateCompanyRequest): Observable<Company> {\n return from(this.ensureConfigured().companies.create(request));\n }\n\n updateCompany(uniqueId: string, request: UpdateCompanyRequest): Observable<Company> {\n return from(this.ensureConfigured().companies.update(uniqueId, request));\n }\n\n deleteCompany(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().companies.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Departments Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listDepartments(params?: ListDepartmentsParams): Observable<PageResult<Department>> {\n return from(this.ensureConfigured().departments.list(params));\n }\n\n getDepartment(uniqueId: string): Observable<Department> {\n return from(this.ensureConfigured().departments.get(uniqueId));\n }\n\n createDepartment(request: CreateDepartmentRequest): Observable<Department> {\n return from(this.ensureConfigured().departments.create(request));\n }\n\n updateDepartment(uniqueId: string, request: UpdateDepartmentRequest): Observable<Department> {\n return from(this.ensureConfigured().departments.update(uniqueId, request));\n }\n\n deleteDepartment(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().departments.delete(uniqueId));\n }\n\n listDepartmentsByCompany(companyUniqueId: string): Observable<Department[]> {\n return from(this.ensureConfigured().departments.listByCompany(companyUniqueId));\n }\n\n getDepartmentHierarchy(companyUniqueId: string): Observable<DepartmentHierarchy[]> {\n return from(this.ensureConfigured().departments.getHierarchy(companyUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Teams Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listTeams(params?: ListTeamsParams): Observable<PageResult<Team>> {\n return from(this.ensureConfigured().teams.list(params));\n }\n\n getTeam(uniqueId: string): Observable<Team> {\n return from(this.ensureConfigured().teams.get(uniqueId));\n }\n\n createTeam(request: CreateTeamRequest): Observable<Team> {\n return from(this.ensureConfigured().teams.create(request));\n }\n\n updateTeam(uniqueId: string, request: UpdateTeamRequest): Observable<Team> {\n return from(this.ensureConfigured().teams.update(uniqueId, request));\n }\n\n deleteTeam(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().teams.delete(uniqueId));\n }\n\n listTeamsByDepartment(departmentUniqueId: string): Observable<Team[]> {\n return from(this.ensureConfigured().teams.listByDepartment(departmentUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Team Members Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listTeamMembers(params?: ListTeamMembersParams): Observable<PageResult<TeamMember>> {\n return from(this.ensureConfigured().teamMembers.list(params));\n }\n\n getTeamMember(uniqueId: string): Observable<TeamMember> {\n return from(this.ensureConfigured().teamMembers.get(uniqueId));\n }\n\n addTeamMember(request: AddTeamMemberRequest): Observable<TeamMember> {\n return from(this.ensureConfigured().teamMembers.add(request));\n }\n\n updateTeamMember(uniqueId: string, request: UpdateTeamMemberRequest): Observable<TeamMember> {\n return from(this.ensureConfigured().teamMembers.update(uniqueId, request));\n }\n\n removeTeamMember(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().teamMembers.remove(uniqueId));\n }\n\n listTeamMembersByTeam(teamUniqueId: string): Observable<TeamMember[]> {\n return from(this.ensureConfigured().teamMembers.listByTeam(teamUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Quarters Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listQuarters(params?: ListQuartersParams): Observable<PageResult<Quarter>> {\n return from(this.ensureConfigured().quarters.list(params));\n }\n\n getQuarter(uniqueId: string): Observable<Quarter> {\n return from(this.ensureConfigured().quarters.get(uniqueId));\n }\n\n createQuarter(request: CreateQuarterRequest): Observable<Quarter> {\n return from(this.ensureConfigured().quarters.create(request));\n }\n\n updateQuarter(uniqueId: string, request: UpdateQuarterRequest): Observable<Quarter> {\n return from(this.ensureConfigured().quarters.update(uniqueId, request));\n }\n\n deleteQuarter(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().quarters.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Positions Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List positions with optional filtering and pagination\n */\n listPositions(params?: ListPositionsParams): Observable<PageResult<Position>> {\n return from(this.ensureConfigured().positions.list(params));\n }\n\n /**\n * Get a position by unique ID\n */\n getPosition(uniqueId: string): Observable<Position> {\n return from(this.ensureConfigured().positions.get(uniqueId));\n }\n\n /**\n * Create a new position\n */\n createPosition(request: CreatePositionRequest): Observable<Position> {\n return from(this.ensureConfigured().positions.create(request));\n }\n\n /**\n * Update an existing position\n */\n updatePosition(uniqueId: string, request: UpdatePositionRequest): Observable<Position> {\n return from(this.ensureConfigured().positions.update(uniqueId, request));\n }\n\n /**\n * Delete a position\n */\n deletePosition(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().positions.delete(uniqueId));\n }\n\n /**\n * List positions by department\n */\n listPositionsByDepartment(departmentUniqueId: string): Observable<Position[]> {\n return from(this.ensureConfigured().positions.listByDepartment(departmentUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Employee Assignments Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List employee assignments with optional filtering and pagination\n */\n listEmployeeAssignments(params?: ListEmployeeAssignmentsParams): Observable<PageResult<EmployeeAssignment>> {\n return from(this.ensureConfigured().employeeAssignments.list(params));\n }\n\n /**\n * Get an employee assignment by unique ID\n */\n getEmployeeAssignment(uniqueId: string): Observable<EmployeeAssignment> {\n return from(this.ensureConfigured().employeeAssignments.get(uniqueId));\n }\n\n /**\n * Create a new employee assignment\n */\n createEmployeeAssignment(request: CreateEmployeeAssignmentRequest): Observable<EmployeeAssignment> {\n return from(this.ensureConfigured().employeeAssignments.create(request));\n }\n\n /**\n * Update an existing employee assignment\n */\n updateEmployeeAssignment(uniqueId: string, request: UpdateEmployeeAssignmentRequest): Observable<EmployeeAssignment> {\n return from(this.ensureConfigured().employeeAssignments.update(uniqueId, request));\n }\n\n /**\n * Delete an employee assignment\n */\n deleteEmployeeAssignment(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().employeeAssignments.delete(uniqueId));\n }\n\n /**\n * List employee assignments by user\n */\n listEmployeeAssignmentsByUser(userUniqueId: string): Observable<EmployeeAssignment[]> {\n return from(this.ensureConfigured().employeeAssignments.listByUser(userUniqueId));\n }\n\n /**\n * List employee assignments by position\n */\n listEmployeeAssignmentsByPosition(positionUniqueId: string): Observable<EmployeeAssignment[]> {\n return from(this.ensureConfigured().employeeAssignments.listByPosition(positionUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get companyBlock(): CompanyBlock {\n return this.ensureConfigured();\n }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createRewardsBlock,\n type RewardsBlock,\n type RewardsBlockConfig,\n type Reward,\n type RewardRedemption,\n type CreateRewardRequest,\n type UpdateRewardRequest,\n type ListRewardsParams,\n type RedeemRewardRequest,\n type Coupon,\n type CouponApplication,\n type CreateCouponRequest,\n type UpdateCouponRequest,\n type ListCouponsParams,\n type ValidateCouponRequest,\n type CouponValidationResult,\n type ApplyCouponRequest,\n type Loyalty,\n type LoyaltyTransaction,\n type AddPointsRequest,\n type RedeemPointsRequest,\n type ListTransactionsParams,\n type Badge,\n type UserBadge,\n type CreateBadgeRequest,\n type UpdateBadgeRequest,\n type ListBadgesParams,\n type AwardBadgeRequest,\n type ListUserBadgesParams,\n type CouponConfiguration,\n type CreateCouponConfigurationRequest,\n type UpdateCouponConfigurationRequest,\n type ListCouponConfigurationsParams,\n type OfferCode,\n type CreateOfferCodeRequest,\n type SendOfferCodeRequest,\n type RedeemOfferCodeRequest,\n type ExpirationRule,\n type CreateExpirationRuleRequest,\n type UpdateExpirationRuleRequest,\n type ListExpirationRulesParams,\n type RewardsCustomer,\n type CustomerRewardExpiration,\n type CustomerRewardHistory,\n type ListRewardsCustomersParams,\n // Loyalty rules types\n type BadgeCategory,\n type CreateBadgeCategoryRequest,\n type MoneyRule,\n type CreateMoneyRuleRequest,\n type UpdateMoneyRuleRequest,\n type ProductRule,\n type CreateProductRuleRequest,\n type UpdateProductRuleRequest,\n type EventRule,\n type CreateEventRuleRequest,\n type UpdateEventRuleRequest,\n} from '@23blocks/block-rewards';\nimport { TRANSPORT, REWARDS_TRANSPORT, REWARDS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Rewards block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class RewardsComponent {\n * constructor(private rewards: RewardsService) {}\n *\n * listRewards() {\n * this.rewards.listRewards({ status: 'active' }).subscribe({\n * next: (result) => console.log('Rewards:', result.data),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\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 /**\n * Ensure the service is configured, throw helpful error if not\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 // ─────────────────────────────────────────────────────────────────────────────\n // Rewards Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listRewards(params?: ListRewardsParams): Observable<PageResult<Reward>> {\n return from(this.ensureConfigured().rewards.list(params));\n }\n\n getReward(uniqueId: string): Observable<Reward> {\n return from(this.ensureConfigured().rewards.get(uniqueId));\n }\n\n createReward(data: CreateRewardRequest): Observable<Reward> {\n return from(this.ensureConfigured().rewards.create(data));\n }\n\n updateReward(uniqueId: string, data: UpdateRewardRequest): Observable<Reward> {\n return from(this.ensureConfigured().rewards.update(uniqueId, data));\n }\n\n deleteReward(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().rewards.delete(uniqueId));\n }\n\n redeemReward(data: RedeemRewardRequest): Observable<RewardRedemption> {\n return from(this.ensureConfigured().rewards.redeem(data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Coupons Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCoupons(params?: ListCouponsParams): Observable<PageResult<Coupon>> {\n return from(this.ensureConfigured().coupons.list(params));\n }\n\n getCoupon(uniqueId: string): Observable<Coupon> {\n return from(this.ensureConfigured().coupons.get(uniqueId));\n }\n\n getCouponByCode(code: string): Observable<Coupon> {\n return from(this.ensureConfigured().coupons.getByCode(code));\n }\n\n createCoupon(data: CreateCouponRequest): Observable<Coupon> {\n return from(this.ensureConfigured().coupons.create(data));\n }\n\n updateCoupon(uniqueId: string, data: UpdateCouponRequest): Observable<Coupon> {\n return from(this.ensureConfigured().coupons.update(uniqueId, data));\n }\n\n deleteCoupon(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().coupons.delete(uniqueId));\n }\n\n validateCoupon(data: ValidateCouponRequest): Observable<CouponValidationResult> {\n return from(this.ensureConfigured().coupons.validate(data));\n }\n\n applyCoupon(data: ApplyCouponRequest): Observable<CouponApplication> {\n return from(this.ensureConfigured().coupons.apply(data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Loyalty Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getLoyalty(uniqueId: string): Observable<Loyalty> {\n return from(this.ensureConfigured().loyalty.get(uniqueId));\n }\n\n getLoyaltyByUser(userUniqueId: string): Observable<Loyalty> {\n return from(this.ensureConfigured().loyalty.getByUser(userUniqueId));\n }\n\n addPoints(data: AddPointsRequest): Observable<LoyaltyTransaction> {\n return from(this.ensureConfigured().loyalty.addPoints(data));\n }\n\n redeemPoints(data: RedeemPointsRequest): Observable<LoyaltyTransaction> {\n return from(this.ensureConfigured().loyalty.redeemPoints(data));\n }\n\n getLoyaltyHistory(userUniqueId: string, params?: ListTransactionsParams): Observable<PageResult<LoyaltyTransaction>> {\n return from(this.ensureConfigured().loyalty.getHistory(userUniqueId, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Badges Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listBadges(params?: ListBadgesParams): Observable<PageResult<Badge>> {\n return from(this.ensureConfigured().badges.list(params));\n }\n\n getBadge(uniqueId: string): Observable<Badge> {\n return from(this.ensureConfigured().badges.get(uniqueId));\n }\n\n createBadge(data: CreateBadgeRequest): Observable<Badge> {\n return from(this.ensureConfigured().badges.create(data));\n }\n\n updateBadge(uniqueId: string, data: UpdateBadgeRequest): Observable<Badge> {\n return from(this.ensureConfigured().badges.update(uniqueId, data));\n }\n\n deleteBadge(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().badges.delete(uniqueId));\n }\n\n awardBadge(data: AwardBadgeRequest): Observable<UserBadge> {\n return from(this.ensureConfigured().badges.award(data));\n }\n\n listUserBadges(userUniqueId: string, params?: ListUserBadgesParams): Observable<PageResult<UserBadge>> {\n return from(this.ensureConfigured().badges.listByUser(userUniqueId, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Coupon Configurations Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCouponConfigurations(params?: ListCouponConfigurationsParams): Observable<PageResult<CouponConfiguration>> {\n return from(this.ensureConfigured().couponConfigurations.list(params));\n }\n\n getCouponConfiguration(uniqueId: string): Observable<CouponConfiguration> {\n return from(this.ensureConfigured().couponConfigurations.get(uniqueId));\n }\n\n createCouponConfiguration(data: CreateCouponConfigurationRequest): Observable<CouponConfiguration> {\n return from(this.ensureConfigured().couponConfigurations.create(data));\n }\n\n updateCouponConfiguration(data: UpdateCouponConfigurationRequest): Observable<CouponConfiguration> {\n return from(this.ensureConfigured().couponConfigurations.update(data));\n }\n\n deleteCouponConfiguration(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().couponConfigurations.delete(uniqueId));\n }\n\n listConfigurationCoupons(uniqueId: string): Observable<Coupon[]> {\n return from(this.ensureConfigured().couponConfigurations.listCoupons(uniqueId));\n }\n\n generateOneCoupon(uniqueId: string): Observable<Coupon> {\n return from(this.ensureConfigured().couponConfigurations.generateOne(uniqueId));\n }\n\n generateBatchCoupons(uniqueId: string, count: number): Observable<Coupon[]> {\n return from(this.ensureConfigured().couponConfigurations.generateBatch(uniqueId, count));\n }\n\n voidBatchCoupons(uniqueId: string, batchId: string): Observable<void> {\n return from(this.ensureConfigured().couponConfigurations.voidBatch(uniqueId, batchId));\n }\n\n loadCoupons(uniqueId: string, codes: string[]): Observable<Coupon[]> {\n return from(this.ensureConfigured().couponConfigurations.loadCoupons(uniqueId, codes));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Offer Codes Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getOfferCode(code: string): Observable<OfferCode> {\n return from(this.ensureConfigured().offerCodes.get(code));\n }\n\n createOfferCode(data: CreateOfferCodeRequest): Observable<OfferCode> {\n return from(this.ensureConfigured().offerCodes.create(data));\n }\n\n sendOfferCode(data: SendOfferCodeRequest): Observable<OfferCode> {\n return from(this.ensureConfigured().offerCodes.send(data));\n }\n\n redeemOfferCode(data: RedeemOfferCodeRequest): Observable<OfferCode> {\n return from(this.ensureConfigured().offerCodes.redeem(data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Expiration Rules Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listExpirationRules(params?: ListExpirationRulesParams): Observable<PageResult<ExpirationRule>> {\n return from(this.ensureConfigured().expirationRules.list(params));\n }\n\n getExpirationRule(uniqueId: string): Observable<ExpirationRule> {\n return from(this.ensureConfigured().expirationRules.get(uniqueId));\n }\n\n createExpirationRule(data: CreateExpirationRuleRequest): Observable<ExpirationRule> {\n return from(this.ensureConfigured().expirationRules.create(data));\n }\n\n updateExpirationRule(uniqueId: string, data: UpdateExpirationRuleRequest): Observable<ExpirationRule> {\n return from(this.ensureConfigured().expirationRules.update(uniqueId, data));\n }\n\n deleteExpirationRule(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().expirationRules.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Rewards Customers Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listRewardsCustomers(params?: ListRewardsCustomersParams): Observable<PageResult<RewardsCustomer>> {\n return from(this.ensureConfigured().customers.list(params));\n }\n\n getRewardsCustomer(uniqueId: string): Observable<RewardsCustomer> {\n return from(this.ensureConfigured().customers.get(uniqueId));\n }\n\n getCustomerLoyaltyTier(uniqueId: string): Observable<Loyalty> {\n return from(this.ensureConfigured().customers.getLoyaltyTier(uniqueId));\n }\n\n getCustomerRewards(uniqueId: string): Observable<unknown> {\n return from(this.ensureConfigured().customers.getRewards(uniqueId));\n }\n\n getCustomerRewardExpirations(uniqueId: string): Observable<CustomerRewardExpiration[]> {\n return from(this.ensureConfigured().customers.getRewardExpirations(uniqueId));\n }\n\n getCustomerRewardHistory(uniqueId: string): Observable<CustomerRewardHistory[]> {\n return from(this.ensureConfigured().customers.getRewardHistory(uniqueId));\n }\n\n getCustomerBadges(uniqueId: string): Observable<Badge[]> {\n return from(this.ensureConfigured().customers.getBadges(uniqueId));\n }\n\n getCustomerCoupons(uniqueId: string): Observable<Coupon[]> {\n return from(this.ensureConfigured().customers.getCoupons(uniqueId));\n }\n\n getCustomerOfferCodes(uniqueId: string): Observable<OfferCode[]> {\n return from(this.ensureConfigured().customers.getOfferCodes(uniqueId));\n }\n\n grantCustomerReward(uniqueId: string, points: number, reason?: string): Observable<RewardsCustomer> {\n return from(this.ensureConfigured().customers.grantReward(uniqueId, points, reason));\n }\n\n updateCustomerExpiration(uniqueId: string, expirationDate: Date): Observable<RewardsCustomer> {\n return from(this.ensureConfigured().customers.updateExpiration(uniqueId, expirationDate));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Badge Categories Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List badge categories with optional pagination\n */\n listBadgeCategories(page?: number, perPage?: number): Observable<PageResult<BadgeCategory>> {\n return from(this.ensureConfigured().badgeCategories.list(page, perPage));\n }\n\n /**\n * Get a badge category by unique ID\n */\n getBadgeCategory(uniqueId: string): Observable<BadgeCategory> {\n return from(this.ensureConfigured().badgeCategories.get(uniqueId));\n }\n\n /**\n * Create a new badge category\n */\n createBadgeCategory(data: CreateBadgeCategoryRequest): Observable<BadgeCategory> {\n return from(this.ensureConfigured().badgeCategories.create(data));\n }\n\n /**\n * Update a badge category\n */\n updateBadgeCategory(uniqueId: string, data: Partial<CreateBadgeCategoryRequest>): Observable<BadgeCategory> {\n return from(this.ensureConfigured().badgeCategories.update(uniqueId, data));\n }\n\n /**\n * Delete a badge category\n */\n deleteBadgeCategory(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().badgeCategories.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Money Rules Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List money rules for a loyalty program\n */\n listMoneyRules(loyaltyUniqueId: string): Observable<MoneyRule[]> {\n return from(this.ensureConfigured().moneyRules.list(loyaltyUniqueId));\n }\n\n /**\n * Get a money rule by unique ID\n */\n getMoneyRule(loyaltyUniqueId: string, ruleUniqueId: string): Observable<MoneyRule> {\n return from(this.ensureConfigured().moneyRules.get(loyaltyUniqueId, ruleUniqueId));\n }\n\n /**\n * Create a new money rule\n */\n createMoneyRule(loyaltyUniqueId: string, data: CreateMoneyRuleRequest): Observable<MoneyRule> {\n return from(this.ensureConfigured().moneyRules.create(loyaltyUniqueId, data));\n }\n\n /**\n * Update a money rule\n */\n updateMoneyRule(loyaltyUniqueId: string, ruleUniqueId: string, data: UpdateMoneyRuleRequest): Observable<MoneyRule> {\n return from(this.ensureConfigured().moneyRules.update(loyaltyUniqueId, ruleUniqueId, data));\n }\n\n /**\n * Delete a money rule\n */\n deleteMoneyRule(loyaltyUniqueId: string, ruleUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().moneyRules.delete(loyaltyUniqueId, ruleUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Product Rules Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List product rules for a loyalty program\n */\n listProductRules(loyaltyUniqueId: string): Observable<ProductRule[]> {\n return from(this.ensureConfigured().productRules.list(loyaltyUniqueId));\n }\n\n /**\n * Get a product rule by unique ID\n */\n getProductRule(loyaltyUniqueId: string, ruleUniqueId: string): Observable<ProductRule> {\n return from(this.ensureConfigured().productRules.get(loyaltyUniqueId, ruleUniqueId));\n }\n\n /**\n * Create a new product rule\n */\n createProductRule(loyaltyUniqueId: string, data: CreateProductRuleRequest): Observable<ProductRule> {\n return from(this.ensureConfigured().productRules.create(loyaltyUniqueId, data));\n }\n\n /**\n * Update a product rule\n */\n updateProductRule(loyaltyUniqueId: string, ruleUniqueId: string, data: UpdateProductRuleRequest): Observable<ProductRule> {\n return from(this.ensureConfigured().productRules.update(loyaltyUniqueId, ruleUniqueId, data));\n }\n\n /**\n * Delete a product rule\n */\n deleteProductRule(loyaltyUniqueId: string, ruleUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().productRules.delete(loyaltyUniqueId, ruleUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Event Rules Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * List event rules for a loyalty program\n */\n listEventRules(loyaltyUniqueId: string): Observable<EventRule[]> {\n return from(this.ensureConfigured().eventRules.list(loyaltyUniqueId));\n }\n\n /**\n * Get an event rule by unique ID\n */\n getEventRule(loyaltyUniqueId: string, ruleUniqueId: string): Observable<EventRule> {\n return from(this.ensureConfigured().eventRules.get(loyaltyUniqueId, ruleUniqueId));\n }\n\n /**\n * Create a new event rule\n */\n createEventRule(loyaltyUniqueId: string, data: CreateEventRuleRequest): Observable<EventRule> {\n return from(this.ensureConfigured().eventRules.create(loyaltyUniqueId, data));\n }\n\n /**\n * Update an event rule\n */\n updateEventRule(loyaltyUniqueId: string, ruleUniqueId: string, data: UpdateEventRuleRequest): Observable<EventRule> {\n return from(this.ensureConfigured().eventRules.update(loyaltyUniqueId, ruleUniqueId, data));\n }\n\n /**\n * Delete an event rule\n */\n deleteEventRule(loyaltyUniqueId: string, ruleUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().eventRules.delete(loyaltyUniqueId, ruleUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get rewardsBlock(): RewardsBlock {\n return this.ensureConfigured();\n }\n}\n","// @ts-nocheck\nimport { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createSalesBlock,\n type SalesBlock,\n type SalesBlockConfig,\n type Order,\n type OrderStatus,\n type CreateOrderRequest,\n type UpdateOrderRequest,\n type ListOrdersParams,\n type OrderDetail,\n type UpdateOrderDetailRequest,\n type Payment,\n type PaymentStatus,\n type CreatePaymentRequest,\n type ListPaymentsParams,\n type Subscription,\n type SubscriptionInterval,\n type SubscriptionStatus,\n type CreateSubscriptionRequest,\n type UpdateSubscriptionRequest,\n type ListSubscriptionsParams,\n type OrderTax,\n type CreateOrderTaxRequest,\n type UpdateOrderTaxRequest,\n type SubscriptionModel,\n type CreateSubscriptionModelRequest,\n type UpdateSubscriptionModelRequest,\n type ListSubscriptionModelsParams,\n type SalesEntity,\n type RegisterSalesEntityRequest,\n type UpdateSalesEntityRequest,\n type ListSalesEntitiesParams,\n type EntitySubscription,\n type CreateEntitySubscriptionRequest,\n type UpdateEntitySubscriptionRequest,\n type SalesUser,\n type RegisterSalesUserRequest,\n type UpdateSalesUserRequest,\n type ListSalesUsersParams,\n type UserSubscription,\n type CreateUserSubscriptionRequest,\n type UpdateUserSubscriptionRequest,\n type SalesCustomer,\n type CreateSalesCustomerRequest,\n type UpdateSalesCustomerRequest,\n type ListSalesCustomersParams,\n type FlexibleOrder,\n type CreateFlexibleOrderRequest,\n type UpdateFlexibleOrderRequest,\n type ListFlexibleOrdersParams,\n type VendorPayment,\n type CreateVendorPaymentRequest,\n type UpdateVendorPaymentRequest,\n type ListVendorPaymentsParams,\n // Stripe types\n type StripeCustomer,\n type CreateStripeCustomerRequest,\n type CreateStripeCustomerResponse,\n type StripeCheckoutSession,\n type CreateStripeCheckoutSessionRequest,\n type StripePaymentIntent,\n type CreateStripePaymentIntentRequest,\n type StripeSubscription,\n type CreateStripeSubscriptionRequest,\n type UpdateStripeSubscriptionRequest,\n type StripeCustomerPortalSession,\n type CreateStripeCustomerPortalRequest,\n type StripeWebhook,\n type CreateStripeWebhookRequest,\n type ListStripeSubscriptionsParams,\n // MercadoPago types\n type MercadoPagoPaymentMethod,\n type MercadoPagoPaymentIntent,\n type CreateMercadoPagoPaymentRequest,\n type CreateMercadoPagoPSERequest,\n} from '@23blocks/block-sales';\nimport { TRANSPORT, SALES_TRANSPORT, SALES_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Sales block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class CheckoutComponent {\n * constructor(private sales: SalesService) {}\n *\n * createOrder(items: any[]) {\n * this.sales.createOrder({ userUniqueId: '123', items }).subscribe({\n * next: (order) => console.log('Order created:', order),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\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 /**\n * Ensure the service is configured, throw helpful error if not\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 // ───────────────────────────────────────────────────────────────────────────\n // Orders Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listOrders(params?: ListOrdersParams): Observable<PageResult<Order>> {\n return from(this.ensureConfigured().orders.list(params));\n }\n\n getOrder(uniqueId: string): Observable<Order> {\n return from(this.ensureConfigured().orders.get(uniqueId));\n }\n\n createOrder(data: CreateOrderRequest): Observable<Order> {\n return from(this.ensureConfigured().orders.create(data));\n }\n\n updateOrder(uniqueId: string, data: UpdateOrderRequest): Observable<Order> {\n return from(this.ensureConfigured().orders.update(uniqueId, data));\n }\n\n cancelOrder(uniqueId: string): Observable<Order> {\n return from(this.ensureConfigured().orders.cancel(uniqueId));\n }\n\n confirmOrder(uniqueId: string): Observable<Order> {\n return from(this.ensureConfigured().orders.confirm(uniqueId));\n }\n\n shipOrder(uniqueId: string, trackingNumber?: string): Observable<Order> {\n return from(this.ensureConfigured().orders.ship(uniqueId, trackingNumber));\n }\n\n deliverOrder(uniqueId: string): Observable<Order> {\n return from(this.ensureConfigured().orders.deliver(uniqueId));\n }\n\n listOrdersByUser(userUniqueId: string, params?: ListOrdersParams): Observable<PageResult<Order>> {\n return from(this.ensureConfigured().orders.listByUser(userUniqueId, params));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Order Details Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listOrderDetails(): Observable<OrderDetail[]> {\n return from(this.ensureConfigured().orderDetails.list());\n }\n\n getOrderDetail(uniqueId: string): Observable<OrderDetail> {\n return from(this.ensureConfigured().orderDetails.get(uniqueId));\n }\n\n updateOrderDetail(uniqueId: string, data: UpdateOrderDetailRequest): Observable<OrderDetail> {\n return from(this.ensureConfigured().orderDetails.update(uniqueId, data));\n }\n\n listOrderDetailsByOrder(orderUniqueId: string): Observable<OrderDetail[]> {\n return from(this.ensureConfigured().orderDetails.listByOrder(orderUniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Payments Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listPayments(params?: ListPaymentsParams): Observable<PageResult<Payment>> {\n return from(this.ensureConfigured().payments.list(params));\n }\n\n getPayment(uniqueId: string): Observable<Payment> {\n return from(this.ensureConfigured().payments.get(uniqueId));\n }\n\n createPayment(data: CreatePaymentRequest): Observable<Payment> {\n return from(this.ensureConfigured().payments.create(data));\n }\n\n refundPayment(uniqueId: string, amount?: number): Observable<Payment> {\n return from(this.ensureConfigured().payments.refund(uniqueId, amount));\n }\n\n listPaymentsByOrder(orderUniqueId: string): Observable<Payment[]> {\n return from(this.ensureConfigured().payments.listByOrder(orderUniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Subscriptions Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listSubscriptions(params?: ListSubscriptionsParams): Observable<PageResult<Subscription>> {\n return from(this.ensureConfigured().subscriptions.list(params));\n }\n\n getSubscription(uniqueId: string): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.get(uniqueId));\n }\n\n createSubscription(data: CreateSubscriptionRequest): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.create(data));\n }\n\n updateSubscription(uniqueId: string, data: UpdateSubscriptionRequest): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.update(uniqueId, data));\n }\n\n cancelSubscription(uniqueId: string): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.cancel(uniqueId));\n }\n\n pauseSubscription(uniqueId: string): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.pause(uniqueId));\n }\n\n resumeSubscription(uniqueId: string): Observable<Subscription> {\n return from(this.ensureConfigured().subscriptions.resume(uniqueId));\n }\n\n listSubscriptionsByUser(userUniqueId: string, params?: ListSubscriptionsParams): Observable<PageResult<Subscription>> {\n return from(this.ensureConfigured().subscriptions.listByUser(userUniqueId, params));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Order Taxes Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listOrderTaxes(orderUniqueId: string): Observable<OrderTax[]> {\n return from(this.ensureConfigured().orderTaxes.list(orderUniqueId));\n }\n\n getOrderTax(orderUniqueId: string, uniqueId: string): Observable<OrderTax> {\n return from(this.ensureConfigured().orderTaxes.get(orderUniqueId, uniqueId));\n }\n\n createOrderTax(orderUniqueId: string, data: CreateOrderTaxRequest): Observable<OrderTax> {\n return from(this.ensureConfigured().orderTaxes.create(orderUniqueId, data));\n }\n\n updateOrderTax(orderUniqueId: string, uniqueId: string, data: UpdateOrderTaxRequest): Observable<OrderTax> {\n return from(this.ensureConfigured().orderTaxes.update(orderUniqueId, uniqueId, data));\n }\n\n deleteOrderTax(orderUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().orderTaxes.delete(orderUniqueId, uniqueId));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Subscription Models Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listSubscriptionModels(params?: ListSubscriptionModelsParams): Observable<PageResult<SubscriptionModel>> {\n return from(this.ensureConfigured().subscriptionModels.list(params));\n }\n\n getSubscriptionModel(uniqueId: string): Observable<SubscriptionModel> {\n return from(this.ensureConfigured().subscriptionModels.get(uniqueId));\n }\n\n createSubscriptionModel(data: CreateSubscriptionModelRequest): Observable<SubscriptionModel> {\n return from(this.ensureConfigured().subscriptionModels.create(data));\n }\n\n updateSubscriptionModel(uniqueId: string, data: UpdateSubscriptionModelRequest): Observable<SubscriptionModel> {\n return from(this.ensureConfigured().subscriptionModels.update(uniqueId, data));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Entities Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listSalesEntities(params?: ListSalesEntitiesParams): Observable<PageResult<SalesEntity>> {\n return from(this.ensureConfigured().entities.list(params));\n }\n\n getSalesEntity(uniqueId: string): Observable<SalesEntity> {\n return from(this.ensureConfigured().entities.get(uniqueId));\n }\n\n registerSalesEntity(uniqueId: string, data?: RegisterSalesEntityRequest): Observable<SalesEntity> {\n return from(this.ensureConfigured().entities.register(uniqueId, data));\n }\n\n updateSalesEntity(uniqueId: string, data: UpdateSalesEntityRequest): Observable<SalesEntity> {\n return from(this.ensureConfigured().entities.update(uniqueId, data));\n }\n\n createEntitySubscription(uniqueId: string, data: CreateEntitySubscriptionRequest): Observable<EntitySubscription> {\n return from(this.ensureConfigured().entities.createSubscription(uniqueId, data));\n }\n\n updateEntitySubscription(uniqueId: string, subscriptionUniqueId: string, data: UpdateEntitySubscriptionRequest): Observable<EntitySubscription> {\n return from(this.ensureConfigured().entities.updateSubscription(uniqueId, subscriptionUniqueId, data));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Users Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listSalesUsers(params?: ListSalesUsersParams): Observable<PageResult<SalesUser>> {\n return from(this.ensureConfigured().users.list(params));\n }\n\n getSalesUser(uniqueId: string): Observable<SalesUser> {\n return from(this.ensureConfigured().users.get(uniqueId));\n }\n\n registerSalesUser(uniqueId: string, data?: RegisterSalesUserRequest): Observable<SalesUser> {\n return from(this.ensureConfigured().users.register(uniqueId, data));\n }\n\n updateSalesUser(uniqueId: string, data: UpdateSalesUserRequest): Observable<SalesUser> {\n return from(this.ensureConfigured().users.update(uniqueId, data));\n }\n\n createSalesUserSubscription(uniqueId: string, data: CreateUserSubscriptionRequest): Observable<UserSubscription> {\n return from(this.ensureConfigured().users.createSubscription(uniqueId, data));\n }\n\n updateSalesUserSubscription(uniqueId: string, subscriptionUniqueId: string, data: UpdateUserSubscriptionRequest): Observable<UserSubscription> {\n return from(this.ensureConfigured().users.updateSubscription(uniqueId, subscriptionUniqueId, data));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Customers Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listSalesCustomers(params?: ListSalesCustomersParams): Observable<PageResult<SalesCustomer>> {\n return from(this.ensureConfigured().customers.list(params));\n }\n\n getSalesCustomer(uniqueId: string): Observable<SalesCustomer> {\n return from(this.ensureConfigured().customers.get(uniqueId));\n }\n\n createSalesCustomer(data: CreateSalesCustomerRequest): Observable<SalesCustomer> {\n return from(this.ensureConfigured().customers.create(data));\n }\n\n updateSalesCustomer(uniqueId: string, data: UpdateSalesCustomerRequest): Observable<SalesCustomer> {\n return from(this.ensureConfigured().customers.update(uniqueId, data));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Flexible Orders Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listFlexibleOrders(params?: ListFlexibleOrdersParams): Observable<PageResult<FlexibleOrder>> {\n return from(this.ensureConfigured().flexibleOrders.list(params));\n }\n\n getFlexibleOrder(uniqueId: string): Observable<FlexibleOrder> {\n return from(this.ensureConfigured().flexibleOrders.get(uniqueId));\n }\n\n createFlexibleOrder(data: CreateFlexibleOrderRequest): Observable<FlexibleOrder> {\n return from(this.ensureConfigured().flexibleOrders.create(data));\n }\n\n updateFlexibleOrder(uniqueId: string, data: UpdateFlexibleOrderRequest): Observable<FlexibleOrder> {\n return from(this.ensureConfigured().flexibleOrders.update(uniqueId, data));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Vendor Payments Service\n // ───────────────────────────────────────────────────────────────────────────\n\n listVendorPayments(params?: ListVendorPaymentsParams): Observable<PageResult<VendorPayment>> {\n return from(this.ensureConfigured().vendorPayments.list(params));\n }\n\n getVendorPayment(uniqueId: string): Observable<VendorPayment> {\n return from(this.ensureConfigured().vendorPayments.get(uniqueId));\n }\n\n createVendorPayment(data: CreateVendorPaymentRequest): Observable<VendorPayment> {\n return from(this.ensureConfigured().vendorPayments.create(data));\n }\n\n updateVendorPayment(uniqueId: string, data: UpdateVendorPaymentRequest): Observable<VendorPayment> {\n return from(this.ensureConfigured().vendorPayments.update(uniqueId, data));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Stripe Service\n // ───────────────────────────────────────────────────────────────────────────\n\n /**\n * Create a Stripe customer\n */\n createStripeCustomer(data: CreateStripeCustomerRequest): Observable<CreateStripeCustomerResponse> {\n return from(this.ensureConfigured().stripe.createCustomer(data));\n }\n\n /**\n * Create a Stripe checkout session\n */\n createStripeCheckoutSession(data: CreateStripeCheckoutSessionRequest): Observable<StripeCheckoutSession> {\n return from(this.ensureConfigured().stripe.createCheckoutSession(data));\n }\n\n /**\n * Create a Stripe payment intent\n */\n createStripePaymentIntent(data: CreateStripePaymentIntentRequest): Observable<StripePaymentIntent> {\n return from(this.ensureConfigured().stripe.createPaymentIntent(data));\n }\n\n /**\n * Create a Stripe customer portal session\n */\n createStripeCustomerPortal(uniqueId: string, data: CreateStripeCustomerPortalRequest): Observable<StripeCustomerPortalSession> {\n return from(this.ensureConfigured().stripe.createCustomerPortal(uniqueId, data));\n }\n\n /**\n * List Stripe subscriptions\n */\n listStripeSubscriptions(params?: ListStripeSubscriptionsParams): Observable<PageResult<StripeSubscription>> {\n return from(this.ensureConfigured().stripe.listSubscriptions(params));\n }\n\n /**\n * Create a Stripe subscription\n */\n createStripeSubscription(data: CreateStripeSubscriptionRequest): Observable<StripeSubscription> {\n return from(this.ensureConfigured().stripe.createSubscription(data));\n }\n\n /**\n * Update a Stripe subscription\n */\n updateStripeSubscription(stripeSubscriptionId: string, data: UpdateStripeSubscriptionRequest): Observable<StripeSubscription> {\n return from(this.ensureConfigured().stripe.updateSubscription(stripeSubscriptionId, data));\n }\n\n /**\n * Cancel a Stripe subscription\n */\n cancelStripeSubscription(stripeSubscriptionId: string): Observable<void> {\n return from(this.ensureConfigured().stripe.cancelSubscription(stripeSubscriptionId));\n }\n\n /**\n * List Stripe webhooks\n */\n listStripeWebhooks(): Observable<StripeWebhook[]> {\n return from(this.ensureConfigured().stripe.listWebhooks());\n }\n\n /**\n * Create a Stripe webhook\n */\n createStripeWebhook(data: CreateStripeWebhookRequest): Observable<StripeWebhook> {\n return from(this.ensureConfigured().stripe.createWebhook(data));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // MercadoPago Service\n // ───────────────────────────────────────────────────────────────────────────\n\n /**\n * List available MercadoPago payment methods\n */\n listMercadoPagoPaymentMethods(): Observable<MercadoPagoPaymentMethod[]> {\n return from(this.ensureConfigured().mercadopago.listPaymentMethods());\n }\n\n /**\n * Create a MercadoPago payment intent\n */\n createMercadoPagoPaymentIntent(data: CreateMercadoPagoPaymentRequest): Observable<MercadoPagoPaymentIntent> {\n return from(this.ensureConfigured().mercadopago.createPaymentIntent(data));\n }\n\n /**\n * Create a MercadoPago PSE payment intent (Colombia bank transfer)\n */\n createMercadoPagoPSEIntent(data: CreateMercadoPagoPSERequest): Observable<MercadoPagoPaymentIntent> {\n return from(this.ensureConfigured().mercadopago.createPSEIntent(data));\n }\n\n // ───────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ───────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get salesBlock(): SalesBlock {\n return this.ensureConfigured();\n }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createWalletBlock,\n type WalletBlock,\n type WalletBlockConfig,\n type Wallet,\n type CreateWalletRequest,\n type UpdateWalletRequest,\n type ListWalletsParams,\n type CreditWalletRequest,\n type DebitWalletRequest,\n type Transaction,\n type ListTransactionsParams,\n type AuthorizationCode,\n type CreateAuthorizationCodeRequest,\n type ValidateAuthorizationCodeRequest,\n type UseAuthorizationCodeRequest,\n type ListAuthorizationCodesParams,\n type TransactionWebhookRequest,\n type TransactionWebhookResponse,\n type TransferWalletRequest,\n type ValidateWalletRequest,\n type ValidateWalletResponse,\n type WalletContent,\n type StoreWalletContentRequest,\n} from '@23blocks/block-wallet';\nimport { TRANSPORT, WALLET_TRANSPORT, WALLET_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Wallet block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class WalletComponent {\n * constructor(private wallet: WalletService) {}\n *\n * createWallet(userUniqueId: string) {\n * this.wallet.createWallet({ userUniqueId }).subscribe({\n * next: (wallet) => console.log('Created:', wallet),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\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 /**\n * Ensure the service is configured, throw helpful error if not\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 // ─────────────────────────────────────────────────────────────────────────────\n // Wallets Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listWallets(params?: ListWalletsParams): Observable<PageResult<Wallet>> {\n return from(this.ensureConfigured().wallets.list(params));\n }\n\n getWallet(uniqueId: string): Observable<Wallet> {\n return from(this.ensureConfigured().wallets.get(uniqueId));\n }\n\n getWalletByUser(userUniqueId: string): Observable<Wallet> {\n return from(this.ensureConfigured().wallets.getByUser(userUniqueId));\n }\n\n createWallet(data: CreateWalletRequest): Observable<Wallet> {\n return from(this.ensureConfigured().wallets.create(data));\n }\n\n updateWallet(uniqueId: string, data: UpdateWalletRequest): Observable<Wallet> {\n return from(this.ensureConfigured().wallets.update(uniqueId, data));\n }\n\n creditWallet(uniqueId: string, data: CreditWalletRequest): Observable<Transaction> {\n return from(this.ensureConfigured().wallets.credit(uniqueId, data));\n }\n\n debitWallet(uniqueId: string, data: DebitWalletRequest): Observable<Transaction> {\n return from(this.ensureConfigured().wallets.debit(uniqueId, data));\n }\n\n getWalletBalance(uniqueId: string): Observable<{ balance: number; currency: string }> {\n return from(this.ensureConfigured().wallets.getBalance(uniqueId));\n }\n\n getUserWallet(userUniqueId: string, walletCode: string): Observable<Wallet> {\n return from(this.ensureConfigured().wallets.getUserWallet(userUniqueId, walletCode));\n }\n\n validateWallet(data: ValidateWalletRequest): Observable<ValidateWalletResponse> {\n return from(this.ensureConfigured().wallets.validate(data));\n }\n\n transferWallet(userUniqueId: string, walletCode: string, data: TransferWalletRequest): Observable<Transaction> {\n return from(this.ensureConfigured().wallets.transfer(userUniqueId, walletCode, data));\n }\n\n getWalletContent(userUniqueId: string, walletCode: string): Observable<WalletContent[]> {\n return from(this.ensureConfigured().wallets.getContent(userUniqueId, walletCode));\n }\n\n storeWalletContent(userUniqueId: string, walletCode: string, data: StoreWalletContentRequest): Observable<WalletContent> {\n return from(this.ensureConfigured().wallets.storeContent(userUniqueId, walletCode, data));\n }\n\n listWalletTransactions(userUniqueId: string, walletCode: string): Observable<PageResult<Transaction>> {\n return from(this.ensureConfigured().wallets.listTransactions(userUniqueId, walletCode));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Transactions Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listTransactions(params?: ListTransactionsParams): Observable<PageResult<Transaction>> {\n return from(this.ensureConfigured().transactions.list(params));\n }\n\n getTransaction(uniqueId: string): Observable<Transaction> {\n return from(this.ensureConfigured().transactions.get(uniqueId));\n }\n\n listTransactionsByWallet(\n walletUniqueId: string,\n params?: ListTransactionsParams\n ): Observable<PageResult<Transaction>> {\n return from(this.ensureConfigured().transactions.listByWallet(walletUniqueId, params));\n }\n\n listTransactionsByReference(\n referenceType: string,\n referenceUniqueId: string,\n params?: ListTransactionsParams\n ): Observable<PageResult<Transaction>> {\n return from(this.ensureConfigured().transactions.listByReference(referenceType, referenceUniqueId, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Authorization Codes Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listAuthorizationCodes(params?: ListAuthorizationCodesParams): Observable<PageResult<AuthorizationCode>> {\n return from(this.ensureConfigured().authorizationCodes.list(params));\n }\n\n getAuthorizationCode(uniqueId: string): Observable<AuthorizationCode> {\n return from(this.ensureConfigured().authorizationCodes.get(uniqueId));\n }\n\n createAuthorizationCode(data: CreateAuthorizationCodeRequest): Observable<AuthorizationCode> {\n return from(this.ensureConfigured().authorizationCodes.create(data));\n }\n\n validateAuthorizationCode(\n data: ValidateAuthorizationCodeRequest\n ): Observable<{ valid: boolean; authorizationCode?: AuthorizationCode }> {\n return from(this.ensureConfigured().authorizationCodes.validate(data));\n }\n\n useAuthorizationCode(data: UseAuthorizationCodeRequest): Observable<Transaction> {\n return from(this.ensureConfigured().authorizationCodes.use(data));\n }\n\n invalidateAuthorizationCode(uniqueId: string): Observable<AuthorizationCode> {\n return from(this.ensureConfigured().authorizationCodes.invalidate(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Webhooks Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Process an incoming transaction webhook from an external payment provider.\n * This endpoint is used to record transactions initiated by external systems.\n */\n processTransactionWebhook(\n companyUrlId: string,\n walletCode: string,\n data: TransactionWebhookRequest\n ): Observable<TransactionWebhookResponse> {\n return from(this.ensureConfigured().webhooks.processTransaction(companyUrlId, walletCode, data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get walletBlock(): WalletBlock {\n return this.ensureConfigured();\n }\n}\n","// @ts-nocheck\nimport { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createJarvisBlock,\n type JarvisBlock,\n type JarvisBlockConfig,\n // Agents\n type Agent,\n type CreateAgentRequest,\n type UpdateAgentRequest,\n type ListAgentsParams,\n type ChatRequest,\n type ChatResponse,\n type CompleteRequest,\n type CompleteResponse,\n // Prompts\n type Prompt,\n type CreatePromptRequest,\n type UpdatePromptRequest,\n type ListPromptsParams,\n type ExecutePromptRequest,\n type ExecutePromptResponse,\n type TestPromptRequest,\n type TestPromptResponse,\n type RenderPromptRequest,\n type RenderPromptResponse,\n // Workflows\n type Workflow,\n type CreateWorkflowRequest,\n type UpdateWorkflowRequest,\n type ListWorkflowsParams,\n type RunWorkflowRequest,\n type RunWorkflowResponse,\n // Executions\n type Execution,\n type ListExecutionsParams,\n // Conversations\n type Conversation,\n type CreateConversationRequest,\n type SendMessageRequest,\n type SendMessageResponse,\n type ListConversationsParams,\n // AI Models\n type AIModel,\n type CreateAIModelRequest,\n type UpdateAIModelRequest,\n type ListAIModelsParams,\n // Entities\n type Entity,\n type RegisterEntityRequest,\n type UpdateEntityRequest,\n type ListEntitiesParams,\n type EntityContext,\n type CreateEntityContextRequest,\n type SendEntityMessageRequest,\n type SendEntityMessageResponse,\n type QueryEntityFileRequest,\n type QueryEntityFileResponse,\n // Clusters\n type Cluster,\n type CreateClusterRequest,\n type UpdateClusterRequest,\n type ListClustersParams,\n type ClusterContext,\n type CreateClusterContextRequest,\n type SendClusterMessageRequest,\n type SendClusterMessageResponse,\n // Users (Jarvis)\n type JarvisUser,\n type RegisterJarvisUserRequest,\n type UpdateJarvisUserRequest,\n type ListJarvisUsersParams,\n type UserContext,\n type CreateUserContextRequest,\n type SendUserMessageRequest,\n type SendUserMessageResponse,\n type CreateUserContentContextRequest,\n // Workflow Participants\n type WorkflowParticipant,\n type AddWorkflowParticipantRequest,\n type UpdateWorkflowParticipantRequest,\n type ListWorkflowParticipantsParams,\n // Workflow Steps\n type WorkflowStep,\n type AddWorkflowStepRequest,\n type UpdateWorkflowStepRequest,\n type AddStepPromptRequest,\n type AddStepAgentRequest,\n // Workflow Instances\n type WorkflowInstance,\n type WorkflowInstanceDetails,\n type StartWorkflowRequest as StartWorkflowInstanceRequest,\n type StartWorkflowResponse as StartWorkflowInstanceResponse,\n type StepWorkflowRequest,\n type LogWorkflowStepRequest,\n // Agent Runtime\n type AgentThread,\n type AgentRun,\n type AgentMessage,\n type AgentContext,\n type CreateAgentThreadRequest,\n type CreateAgentContextRequest,\n type SendAgentThreadMessageRequest,\n type SendAgentThreadMessageResponse,\n type RunAgentThreadRequest,\n type RunAgentThreadResponse,\n type AgentRunExecution,\n type ListAgentRunExecutionsParams,\n // Mail Templates\n type MailTemplate,\n type CreateMailTemplateRequest,\n type UpdateMailTemplateRequest,\n type ListMailTemplatesParams,\n type CreateMandrillTemplateRequest,\n type UpdateMandrillTemplateRequest,\n type MandrillStats,\n // Marvin Chat\n type MarvinContext,\n type MarvinChatRequest,\n type MarvinChatResponse,\n type CreateMarvinContextRequest,\n type SendMarvinMessageRequest,\n type SendMarvinMessageResponse,\n // Comments\n type PromptComment,\n type ExecutionComment,\n type CreatePromptCommentRequest,\n type UpdatePromptCommentRequest,\n type ListPromptCommentsParams,\n type CreateExecutionCommentRequest,\n type UpdateExecutionCommentRequest,\n type ListExecutionCommentsParams,\n type ReplyToCommentRequest,\n} from '@23blocks/block-jarvis';\nimport { TRANSPORT, JARVIS_TRANSPORT, JARVIS_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Jarvis block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class ChatComponent {\n * constructor(private jarvis: JarvisService) {}\n *\n * sendMessage(agentId: string, message: string) {\n * this.jarvis.chat(agentId, { message }).subscribe({\n * next: (response) => console.log('Response:', response.response),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\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 /**\n * Ensure the service is configured, throw helpful error if not\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 // ─────────────────────────────────────────────────────────────────────────────\n // Agents Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listAgents(params?: ListAgentsParams): Observable<PageResult<Agent>> {\n return from(this.ensureConfigured().agents.list(params));\n }\n\n getAgent(uniqueId: string): Observable<Agent> {\n return from(this.ensureConfigured().agents.get(uniqueId));\n }\n\n createAgent(data: CreateAgentRequest): Observable<Agent> {\n return from(this.ensureConfigured().agents.create(data));\n }\n\n updateAgent(uniqueId: string, data: UpdateAgentRequest): Observable<Agent> {\n return from(this.ensureConfigured().agents.update(uniqueId, data));\n }\n\n deleteAgent(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().agents.delete(uniqueId));\n }\n\n chat(uniqueId: string, data: ChatRequest): Observable<ChatResponse> {\n return from(this.ensureConfigured().agents.chat(uniqueId, data));\n }\n\n complete(uniqueId: string, data: CompleteRequest): Observable<CompleteResponse> {\n return from(this.ensureConfigured().agents.complete(uniqueId, data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Prompts Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listPrompts(params?: ListPromptsParams): Observable<PageResult<Prompt>> {\n return from(this.ensureConfigured().prompts.list(params));\n }\n\n getPrompt(uniqueId: string): Observable<Prompt> {\n return from(this.ensureConfigured().prompts.get(uniqueId));\n }\n\n createPrompt(data: CreatePromptRequest): Observable<Prompt> {\n return from(this.ensureConfigured().prompts.create(data));\n }\n\n updatePrompt(uniqueId: string, data: UpdatePromptRequest): Observable<Prompt> {\n return from(this.ensureConfigured().prompts.update(uniqueId, data));\n }\n\n deletePrompt(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().prompts.delete(uniqueId));\n }\n\n executePrompt(uniqueId: string, data: ExecutePromptRequest): Observable<ExecutePromptResponse> {\n return from(this.ensureConfigured().prompts.execute(uniqueId, data));\n }\n\n testPrompt(data: TestPromptRequest): Observable<TestPromptResponse> {\n return from(this.ensureConfigured().prompts.test(data));\n }\n\n renderPrompt(uniqueId: string, data: RenderPromptRequest): Observable<RenderPromptResponse> {\n return from(this.ensureConfigured().prompts.render(uniqueId, data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Workflows Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listWorkflows(params?: ListWorkflowsParams): Observable<PageResult<Workflow>> {\n return from(this.ensureConfigured().workflows.list(params));\n }\n\n getWorkflow(uniqueId: string): Observable<Workflow> {\n return from(this.ensureConfigured().workflows.get(uniqueId));\n }\n\n createWorkflow(data: CreateWorkflowRequest): Observable<Workflow> {\n return from(this.ensureConfigured().workflows.create(data));\n }\n\n updateWorkflow(uniqueId: string, data: UpdateWorkflowRequest): Observable<Workflow> {\n return from(this.ensureConfigured().workflows.update(uniqueId, data));\n }\n\n deleteWorkflow(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().workflows.delete(uniqueId));\n }\n\n runWorkflow(uniqueId: string, data: RunWorkflowRequest): Observable<RunWorkflowResponse> {\n return from(this.ensureConfigured().workflows.run(uniqueId, data));\n }\n\n pauseWorkflow(uniqueId: string): Observable<Workflow> {\n return from(this.ensureConfigured().workflows.pause(uniqueId));\n }\n\n resumeWorkflow(uniqueId: string): Observable<Workflow> {\n return from(this.ensureConfigured().workflows.resume(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Executions Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listExecutions(params?: ListExecutionsParams): Observable<PageResult<Execution>> {\n return from(this.ensureConfigured().executions.list(params));\n }\n\n getExecution(uniqueId: string): Observable<Execution> {\n return from(this.ensureConfigured().executions.get(uniqueId));\n }\n\n listExecutionsByAgent(agentUniqueId: string, params?: ListExecutionsParams): Observable<PageResult<Execution>> {\n return from(this.ensureConfigured().executions.listByAgent(agentUniqueId, params));\n }\n\n listExecutionsByPrompt(promptUniqueId: string, params?: ListExecutionsParams): Observable<PageResult<Execution>> {\n return from(this.ensureConfigured().executions.listByPrompt(promptUniqueId, params));\n }\n\n cancelExecution(uniqueId: string): Observable<Execution> {\n return from(this.ensureConfigured().executions.cancel(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Conversations Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listConversations(params?: ListConversationsParams): Observable<PageResult<Conversation>> {\n return from(this.ensureConfigured().conversations.list(params));\n }\n\n getConversation(uniqueId: string): Observable<Conversation> {\n return from(this.ensureConfigured().conversations.get(uniqueId));\n }\n\n createConversation(data: CreateConversationRequest): Observable<Conversation> {\n return from(this.ensureConfigured().conversations.create(data));\n }\n\n sendMessage(uniqueId: string, data: SendMessageRequest): Observable<SendMessageResponse> {\n return from(this.ensureConfigured().conversations.sendMessage(uniqueId, data));\n }\n\n listConversationsByUser(userUniqueId: string, params?: ListConversationsParams): Observable<PageResult<Conversation>> {\n return from(this.ensureConfigured().conversations.listByUser(userUniqueId, params));\n }\n\n clearConversation(uniqueId: string): Observable<Conversation> {\n return from(this.ensureConfigured().conversations.clear(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // AI Models Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listAIModels(params?: ListAIModelsParams): Observable<PageResult<AIModel>> {\n return from(this.ensureConfigured().aiModels.list(params));\n }\n\n getAIModel(uniqueId: string): Observable<AIModel> {\n return from(this.ensureConfigured().aiModels.get(uniqueId));\n }\n\n createAIModel(data: CreateAIModelRequest): Observable<AIModel> {\n return from(this.ensureConfigured().aiModels.create(data));\n }\n\n updateAIModel(uniqueId: string, data: UpdateAIModelRequest): Observable<AIModel> {\n return from(this.ensureConfigured().aiModels.update(uniqueId, data));\n }\n\n deleteAIModel(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().aiModels.delete(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Entities Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listEntities(params?: ListEntitiesParams): Observable<PageResult<Entity>> {\n return from(this.ensureConfigured().entities.list(params));\n }\n\n getEntity(uniqueId: string): Observable<Entity> {\n return from(this.ensureConfigured().entities.get(uniqueId));\n }\n\n registerEntity(uniqueId: string, data?: RegisterEntityRequest): Observable<Entity> {\n return from(this.ensureConfigured().entities.register(uniqueId, data));\n }\n\n updateEntity(uniqueId: string, data: UpdateEntityRequest): Observable<Entity> {\n return from(this.ensureConfigured().entities.update(uniqueId, data));\n }\n\n deleteEntity(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().entities.delete(uniqueId));\n }\n\n addEntityPrompt(uniqueId: string, promptUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().entities.addPrompt(uniqueId, promptUniqueId));\n }\n\n getEntityContext(uniqueId: string, contextUniqueId: string): Observable<EntityContext> {\n return from(this.ensureConfigured().entities.getContext(uniqueId, contextUniqueId));\n }\n\n createEntityContext(uniqueId: string, data?: CreateEntityContextRequest): Observable<EntityContext> {\n return from(this.ensureConfigured().entities.createContext(uniqueId, data));\n }\n\n getEntityConversation(uniqueId: string, contextUniqueId: string): Observable<EntityContext> {\n return from(this.ensureConfigured().entities.getConversation(uniqueId, contextUniqueId));\n }\n\n sendEntityMessage(uniqueId: string, contextUniqueId: string, data: SendEntityMessageRequest): Observable<SendEntityMessageResponse> {\n return from(this.ensureConfigured().entities.sendMessage(uniqueId, contextUniqueId, data));\n }\n\n queryEntityFile(uniqueId: string, fileUniqueId: string, data: QueryEntityFileRequest): Observable<QueryEntityFileResponse> {\n return from(this.ensureConfigured().entities.queryFile(uniqueId, fileUniqueId, data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Clusters Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listClusters(userUniqueId: string, params?: ListClustersParams): Observable<PageResult<Cluster>> {\n return from(this.ensureConfigured().clusters.list(userUniqueId, params));\n }\n\n getCluster(userUniqueId: string, uniqueId: string): Observable<Cluster> {\n return from(this.ensureConfigured().clusters.get(userUniqueId, uniqueId));\n }\n\n createCluster(userUniqueId: string, data: CreateClusterRequest): Observable<Cluster> {\n return from(this.ensureConfigured().clusters.create(userUniqueId, data));\n }\n\n updateCluster(userUniqueId: string, uniqueId: string, data: UpdateClusterRequest): Observable<Cluster> {\n return from(this.ensureConfigured().clusters.update(userUniqueId, uniqueId, data));\n }\n\n deleteCluster(userUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().clusters.delete(userUniqueId, uniqueId));\n }\n\n addClusterMember(userUniqueId: string, uniqueId: string, entityUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().clusters.addMember(userUniqueId, uniqueId, entityUniqueId));\n }\n\n removeClusterMember(userUniqueId: string, uniqueId: string, entityUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().clusters.removeMember(userUniqueId, uniqueId, entityUniqueId));\n }\n\n addClusterPrompt(userUniqueId: string, uniqueId: string, promptUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().clusters.addPrompt(userUniqueId, uniqueId, promptUniqueId));\n }\n\n getClusterContext(userUniqueId: string, uniqueId: string, contextUniqueId: string): Observable<ClusterContext> {\n return from(this.ensureConfigured().clusters.getContext(userUniqueId, uniqueId, contextUniqueId));\n }\n\n createClusterContext(userUniqueId: string, uniqueId: string, data?: CreateClusterContextRequest): Observable<ClusterContext> {\n return from(this.ensureConfigured().clusters.createContext(userUniqueId, uniqueId, data));\n }\n\n getClusterConversation(userUniqueId: string, uniqueId: string, contextUniqueId: string): Observable<ClusterContext> {\n return from(this.ensureConfigured().clusters.getConversation(userUniqueId, uniqueId, contextUniqueId));\n }\n\n sendClusterMessage(userUniqueId: string, uniqueId: string, contextUniqueId: string, data: SendClusterMessageRequest): Observable<SendClusterMessageResponse> {\n return from(this.ensureConfigured().clusters.sendMessage(userUniqueId, uniqueId, contextUniqueId, data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Jarvis Users Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listJarvisUsers(params?: ListJarvisUsersParams): Observable<PageResult<JarvisUser>> {\n return from(this.ensureConfigured().users.list(params));\n }\n\n getJarvisUser(uniqueId: string): Observable<JarvisUser> {\n return from(this.ensureConfigured().users.get(uniqueId));\n }\n\n registerJarvisUser(uniqueId: string, data?: RegisterJarvisUserRequest): Observable<JarvisUser> {\n return from(this.ensureConfigured().users.register(uniqueId, data));\n }\n\n updateJarvisUser(uniqueId: string, data: UpdateJarvisUserRequest): Observable<JarvisUser> {\n return from(this.ensureConfigured().users.update(uniqueId, data));\n }\n\n addJarvisUserPrompt(uniqueId: string, promptUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().users.addPrompt(uniqueId, promptUniqueId));\n }\n\n getJarvisUserContext(uniqueId: string, contextUniqueId: string): Observable<UserContext> {\n return from(this.ensureConfigured().users.getContext(uniqueId, contextUniqueId));\n }\n\n createJarvisUserContext(uniqueId: string, data?: CreateUserContextRequest): Observable<UserContext> {\n return from(this.ensureConfigured().users.createContext(uniqueId, data));\n }\n\n getJarvisUserConversation(uniqueId: string, contextUniqueId: string): Observable<UserContext> {\n return from(this.ensureConfigured().users.getConversation(uniqueId, contextUniqueId));\n }\n\n sendJarvisUserMessage(uniqueId: string, contextUniqueId: string, data: SendUserMessageRequest): Observable<SendUserMessageResponse> {\n return from(this.ensureConfigured().users.sendMessage(uniqueId, contextUniqueId, data));\n }\n\n getJarvisUserContentContext(uniqueId: string, contentIdentityUniqueId: string, contextUniqueId: string): Observable<UserContext> {\n return from(this.ensureConfigured().users.getContentContext(uniqueId, contentIdentityUniqueId, contextUniqueId));\n }\n\n createJarvisUserContentContext(uniqueId: string, contentIdentityUniqueId: string, data?: CreateUserContentContextRequest): Observable<UserContext> {\n return from(this.ensureConfigured().users.createContentContext(uniqueId, contentIdentityUniqueId, data));\n }\n\n getJarvisUserContentConversation(uniqueId: string, contentIdentityUniqueId: string, contextUniqueId: string): Observable<UserContext> {\n return from(this.ensureConfigured().users.getContentConversation(uniqueId, contentIdentityUniqueId, contextUniqueId));\n }\n\n sendJarvisUserContentMessage(uniqueId: string, contentIdentityUniqueId: string, contextUniqueId: string, data: SendUserMessageRequest): Observable<SendUserMessageResponse> {\n return from(this.ensureConfigured().users.sendContentMessage(uniqueId, contentIdentityUniqueId, contextUniqueId, data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Workflow Participants Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listWorkflowParticipants(workflowUniqueId: string, params?: ListWorkflowParticipantsParams): Observable<PageResult<WorkflowParticipant>> {\n return from(this.ensureConfigured().workflowParticipants.list(workflowUniqueId, params));\n }\n\n getWorkflowParticipant(workflowUniqueId: string, uniqueId: string): Observable<WorkflowParticipant> {\n return from(this.ensureConfigured().workflowParticipants.get(workflowUniqueId, uniqueId));\n }\n\n addWorkflowParticipant(workflowUniqueId: string, data: AddWorkflowParticipantRequest): Observable<WorkflowParticipant> {\n return from(this.ensureConfigured().workflowParticipants.add(workflowUniqueId, data));\n }\n\n updateWorkflowParticipant(workflowUniqueId: string, uniqueId: string, data: UpdateWorkflowParticipantRequest): Observable<WorkflowParticipant> {\n return from(this.ensureConfigured().workflowParticipants.update(workflowUniqueId, uniqueId, data));\n }\n\n removeWorkflowParticipant(workflowUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().workflowParticipants.remove(workflowUniqueId, uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Workflow Steps Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getWorkflowStep(workflowUniqueId: string, stepUniqueId: string): Observable<WorkflowStep> {\n return from(this.ensureConfigured().workflowSteps.get(workflowUniqueId, stepUniqueId));\n }\n\n addWorkflowStep(workflowUniqueId: string, data: AddWorkflowStepRequest): Observable<WorkflowStep> {\n return from(this.ensureConfigured().workflowSteps.add(workflowUniqueId, data));\n }\n\n updateWorkflowStep(workflowUniqueId: string, stepUniqueId: string, data: UpdateWorkflowStepRequest): Observable<WorkflowStep> {\n return from(this.ensureConfigured().workflowSteps.update(workflowUniqueId, stepUniqueId, data));\n }\n\n removeWorkflowStep(workflowUniqueId: string, stepUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().workflowSteps.remove(workflowUniqueId, stepUniqueId));\n }\n\n addStepPrompt(stepUniqueId: string, data: AddStepPromptRequest): Observable<void> {\n return from(this.ensureConfigured().workflowSteps.addPrompt(stepUniqueId, data));\n }\n\n addStepAgent(stepUniqueId: string, data: AddStepAgentRequest): Observable<void> {\n return from(this.ensureConfigured().workflowSteps.addAgent(stepUniqueId, data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Workflow Instances Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n startWorkflowInstance(workflowUniqueId: string, data?: StartWorkflowInstanceRequest): Observable<StartWorkflowInstanceResponse> {\n return from(this.ensureConfigured().workflowInstances.start(workflowUniqueId, data));\n }\n\n getWorkflowInstance(workflowUniqueId: string, instanceUniqueId: string): Observable<WorkflowInstance> {\n return from(this.ensureConfigured().workflowInstances.get(workflowUniqueId, instanceUniqueId));\n }\n\n getWorkflowInstanceDetails(workflowUniqueId: string, instanceUniqueId: string): Observable<WorkflowInstanceDetails> {\n return from(this.ensureConfigured().workflowInstances.getDetails(workflowUniqueId, instanceUniqueId));\n }\n\n stepWorkflowInstance(workflowUniqueId: string, instanceUniqueId: string, data?: StepWorkflowRequest): Observable<WorkflowInstance> {\n return from(this.ensureConfigured().workflowInstances.step(workflowUniqueId, instanceUniqueId, data));\n }\n\n logWorkflowStep(workflowUniqueId: string, instanceUniqueId: string, data: LogWorkflowStepRequest): Observable<WorkflowInstance> {\n return from(this.ensureConfigured().workflowInstances.logStep(workflowUniqueId, instanceUniqueId, data));\n }\n\n suspendWorkflowInstance(workflowUniqueId: string, instanceUniqueId: string): Observable<WorkflowInstance> {\n return from(this.ensureConfigured().workflowInstances.suspend(workflowUniqueId, instanceUniqueId));\n }\n\n resumeWorkflowInstance(workflowUniqueId: string, instanceUniqueId: string): Observable<WorkflowInstance> {\n return from(this.ensureConfigured().workflowInstances.resume(workflowUniqueId, instanceUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Agent Runtime Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getAgentContext(agentUniqueId: string, contextUniqueId: string): Observable<AgentContext> {\n return from(this.ensureConfigured().agentRuntime.getContext(agentUniqueId, contextUniqueId));\n }\n\n createAgentContext(agentUniqueId: string, data?: CreateAgentContextRequest): Observable<AgentContext> {\n return from(this.ensureConfigured().agentRuntime.createContext(agentUniqueId, data));\n }\n\n getAgentConversation(agentUniqueId: string, contextUniqueId: string): Observable<{ messages: AgentMessage[] }> {\n return from(this.ensureConfigured().agentRuntime.getConversation(agentUniqueId, contextUniqueId));\n }\n\n getAgentThread(agentUniqueId: string, threadId: string): Observable<AgentThread> {\n return from(this.ensureConfigured().agentRuntime.getThread(agentUniqueId, threadId));\n }\n\n createAgentThread(agentUniqueId: string, data?: CreateAgentThreadRequest): Observable<AgentThread> {\n return from(this.ensureConfigured().agentRuntime.createThread(agentUniqueId, data));\n }\n\n sendAgentThreadMessage(agentUniqueId: string, threadId: string, data: SendAgentThreadMessageRequest): Observable<SendAgentThreadMessageResponse> {\n return from(this.ensureConfigured().agentRuntime.sendMessage(agentUniqueId, threadId, data));\n }\n\n sendAgentThreadMessageStream(agentUniqueId: string, threadId: string, data: SendAgentThreadMessageRequest): Observable<ReadableStream<string>> {\n return from(this.ensureConfigured().agentRuntime.sendMessageStream(agentUniqueId, threadId, data));\n }\n\n runAgentThread(agentUniqueId: string, threadId: string, data?: RunAgentThreadRequest): Observable<RunAgentThreadResponse> {\n return from(this.ensureConfigured().agentRuntime.runThread(agentUniqueId, threadId, data));\n }\n\n getAgentRun(agentUniqueId: string, threadId: string, runId: string): Observable<AgentRun> {\n return from(this.ensureConfigured().agentRuntime.getRun(agentUniqueId, threadId, runId));\n }\n\n getAgentMessages(agentUniqueId: string, threadId: string): Observable<AgentMessage[]> {\n return from(this.ensureConfigured().agentRuntime.getMessages(agentUniqueId, threadId));\n }\n\n listAgentExecutions(agentUniqueId: string, params?: ListAgentRunExecutionsParams): Observable<PageResult<AgentRunExecution>> {\n return from(this.ensureConfigured().agentRuntime.listExecutions(agentUniqueId, params));\n }\n\n getAgentExecution(agentUniqueId: string, executionUniqueId: string): Observable<AgentRunExecution> {\n return from(this.ensureConfigured().agentRuntime.getExecution(agentUniqueId, executionUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Mail Templates Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listMailTemplates(params?: ListMailTemplatesParams): Observable<PageResult<MailTemplate>> {\n return from(this.ensureConfigured().mailTemplates.list(params));\n }\n\n getMailTemplate(uniqueId: string): Observable<MailTemplate> {\n return from(this.ensureConfigured().mailTemplates.get(uniqueId));\n }\n\n createMailTemplate(data: CreateMailTemplateRequest): Observable<MailTemplate> {\n return from(this.ensureConfigured().mailTemplates.create(data));\n }\n\n updateMailTemplate(uniqueId: string, data: UpdateMailTemplateRequest): Observable<MailTemplate> {\n return from(this.ensureConfigured().mailTemplates.update(uniqueId, data));\n }\n\n createMandrillTemplate(uniqueId: string, data?: CreateMandrillTemplateRequest): Observable<MailTemplate> {\n return from(this.ensureConfigured().mailTemplates.createMandrillTemplate(uniqueId, data));\n }\n\n updateMandrillTemplate(uniqueId: string, data?: UpdateMandrillTemplateRequest): Observable<MailTemplate> {\n return from(this.ensureConfigured().mailTemplates.updateMandrillTemplate(uniqueId, data));\n }\n\n publishMandrill(uniqueId: string): Observable<MailTemplate> {\n return from(this.ensureConfigured().mailTemplates.publishMandrill(uniqueId));\n }\n\n getMandrillStats(uniqueId: string): Observable<MandrillStats> {\n return from(this.ensureConfigured().mailTemplates.getMandrillStats(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Marvin Chat Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n marvinChat(data: MarvinChatRequest): Observable<MarvinChatResponse> {\n return from(this.ensureConfigured().marvinChat.chat(data));\n }\n\n marvinChatV2(data: MarvinChatRequest): Observable<MarvinChatResponse> {\n return from(this.ensureConfigured().marvinChat.chatV2(data));\n }\n\n marvinChatV3(data: MarvinChatRequest): Observable<MarvinChatResponse> {\n return from(this.ensureConfigured().marvinChat.chatV3(data));\n }\n\n getMarvinContext(uniqueId: string): Observable<MarvinContext> {\n return from(this.ensureConfigured().marvinChat.getContext(uniqueId));\n }\n\n createMarvinContext(data?: CreateMarvinContextRequest): Observable<MarvinContext> {\n return from(this.ensureConfigured().marvinChat.createContext(data));\n }\n\n sendMarvinMessage(contextUniqueId: string, data: SendMarvinMessageRequest): Observable<SendMarvinMessageResponse> {\n return from(this.ensureConfigured().marvinChat.sendMessage(contextUniqueId, data));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Prompt Comments Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listPromptComments(promptUniqueId: string, params?: ListPromptCommentsParams): Observable<PageResult<PromptComment>> {\n return from(this.ensureConfigured().promptComments.list(promptUniqueId, params));\n }\n\n getPromptComment(promptUniqueId: string, uniqueId: string): Observable<PromptComment> {\n return from(this.ensureConfigured().promptComments.get(promptUniqueId, uniqueId));\n }\n\n createPromptComment(promptUniqueId: string, data: CreatePromptCommentRequest): Observable<PromptComment> {\n return from(this.ensureConfigured().promptComments.create(promptUniqueId, data));\n }\n\n updatePromptComment(promptUniqueId: string, uniqueId: string, data: UpdatePromptCommentRequest): Observable<PromptComment> {\n return from(this.ensureConfigured().promptComments.update(promptUniqueId, uniqueId, data));\n }\n\n deletePromptComment(promptUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().promptComments.delete(promptUniqueId, uniqueId));\n }\n\n likePromptComment(promptUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().promptComments.like(promptUniqueId, uniqueId));\n }\n\n dislikePromptComment(promptUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().promptComments.dislike(promptUniqueId, uniqueId));\n }\n\n replyToPromptComment(promptUniqueId: string, uniqueId: string, data: ReplyToCommentRequest): Observable<PromptComment> {\n return from(this.ensureConfigured().promptComments.reply(promptUniqueId, uniqueId, data));\n }\n\n followPromptComment(promptUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().promptComments.follow(promptUniqueId, uniqueId));\n }\n\n unfollowPromptComment(promptUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().promptComments.unfollow(promptUniqueId, uniqueId));\n }\n\n savePromptComment(promptUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().promptComments.save(promptUniqueId, uniqueId));\n }\n\n unsavePromptComment(promptUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().promptComments.unsave(promptUniqueId, uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Execution Comments Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listExecutionComments(promptUniqueId: string, executionUniqueId: string, params?: ListExecutionCommentsParams): Observable<PageResult<ExecutionComment>> {\n return from(this.ensureConfigured().executionComments.list(promptUniqueId, executionUniqueId, params));\n }\n\n getExecutionComment(promptUniqueId: string, executionUniqueId: string, uniqueId: string): Observable<ExecutionComment> {\n return from(this.ensureConfigured().executionComments.get(promptUniqueId, executionUniqueId, uniqueId));\n }\n\n createExecutionComment(promptUniqueId: string, executionUniqueId: string, data: CreateExecutionCommentRequest): Observable<ExecutionComment> {\n return from(this.ensureConfigured().executionComments.create(promptUniqueId, executionUniqueId, data));\n }\n\n updateExecutionComment(promptUniqueId: string, executionUniqueId: string, uniqueId: string, data: UpdateExecutionCommentRequest): Observable<ExecutionComment> {\n return from(this.ensureConfigured().executionComments.update(promptUniqueId, executionUniqueId, uniqueId, data));\n }\n\n deleteExecutionComment(promptUniqueId: string, executionUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().executionComments.delete(promptUniqueId, executionUniqueId, uniqueId));\n }\n\n likeExecutionComment(promptUniqueId: string, executionUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().executionComments.like(promptUniqueId, executionUniqueId, uniqueId));\n }\n\n dislikeExecutionComment(promptUniqueId: string, executionUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().executionComments.dislike(promptUniqueId, executionUniqueId, uniqueId));\n }\n\n replyToExecutionComment(promptUniqueId: string, executionUniqueId: string, uniqueId: string, data: ReplyToCommentRequest): Observable<ExecutionComment> {\n return from(this.ensureConfigured().executionComments.reply(promptUniqueId, executionUniqueId, uniqueId, data));\n }\n\n followExecutionComment(promptUniqueId: string, executionUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().executionComments.follow(promptUniqueId, executionUniqueId, uniqueId));\n }\n\n unfollowExecutionComment(promptUniqueId: string, executionUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().executionComments.unfollow(promptUniqueId, executionUniqueId, uniqueId));\n }\n\n saveExecutionComment(promptUniqueId: string, executionUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().executionComments.save(promptUniqueId, executionUniqueId, uniqueId));\n }\n\n unsaveExecutionComment(promptUniqueId: string, executionUniqueId: string, uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().executionComments.unsave(promptUniqueId, executionUniqueId, uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get jarvisBlock(): JarvisBlock {\n return this.ensureConfigured();\n }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createOnboardingBlock,\n type OnboardingBlock,\n type OnboardingBlockConfig,\n // Onboardings\n type Onboarding,\n type CreateOnboardingRequest,\n type UpdateOnboardingRequest,\n type ListOnboardingsParams,\n type OnboardingStep,\n type AddStepRequest,\n type UpdateStepRequest,\n // Flows\n type Flow,\n type CreateFlowRequest,\n type UpdateFlowRequest,\n type ListFlowsParams,\n // User Journeys\n type UserJourney,\n type StartJourneyRequest,\n type CompleteStepRequest,\n type ListUserJourneysParams,\n type UserJourneyReportParams,\n type UserJourneyReportSummary,\n type UserJourneyReportList,\n // User Identities\n type UserIdentity,\n type CreateUserIdentityRequest,\n type VerifyUserIdentityRequest,\n type ListUserIdentitiesParams,\n // Onboard\n type OnboardJourney,\n type OnboardJourneyDetails,\n type StartOnboardRequest,\n type StepOnboardRequest,\n type LogOnboardRequest,\n // Mail Templates\n type MailTemplate,\n type CreateMailTemplateRequest,\n type UpdateMailTemplateRequest,\n type ListMailTemplatesParams,\n type CreateMandrillTemplateRequest,\n type UpdateMandrillTemplateRequest,\n type MandrillTemplateStats,\n // Remarketing\n type AbandonedJourney,\n type ListAbandonedJourneysParams,\n} from '@23blocks/block-onboarding';\nimport { TRANSPORT, ONBOARDING_TRANSPORT, ONBOARDING_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the Onboarding block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class OnboardingComponent {\n * constructor(private onboarding: OnboardingService) {}\n *\n * createOnboarding() {\n * this.onboarding.createOnboarding({\n * code: 'user-onboarding',\n * name: 'User Onboarding',\n * steps: []\n * }).subscribe({\n * next: (onboarding) => console.log('Created:', onboarding),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\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 /**\n * Ensure the service is configured, throw helpful error if not\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 // ─────────────────────────────────────────────────────────────────────────────\n // Onboardings Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listOnboardings(params?: ListOnboardingsParams): Observable<PageResult<Onboarding>> {\n return from(this.ensureConfigured().onboardings.list(params));\n }\n\n getOnboarding(uniqueId: string): Observable<Onboarding> {\n return from(this.ensureConfigured().onboardings.get(uniqueId));\n }\n\n createOnboarding(request: CreateOnboardingRequest): Observable<Onboarding> {\n return from(this.ensureConfigured().onboardings.create(request));\n }\n\n updateOnboarding(uniqueId: string, request: UpdateOnboardingRequest): Observable<Onboarding> {\n return from(this.ensureConfigured().onboardings.update(uniqueId, request));\n }\n\n deleteOnboarding(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().onboardings.delete(uniqueId));\n }\n\n addOnboardingStep(uniqueId: string, data: AddStepRequest): Observable<OnboardingStep> {\n return from(this.ensureConfigured().onboardings.addStep(uniqueId, data));\n }\n\n updateOnboardingStep(uniqueId: string, stepUniqueId: string, data: UpdateStepRequest): Observable<OnboardingStep> {\n return from(this.ensureConfigured().onboardings.updateStep(uniqueId, stepUniqueId, data));\n }\n\n deleteOnboardingStep(uniqueId: string, stepUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().onboardings.deleteStep(uniqueId, stepUniqueId));\n }\n\n stepUser(uniqueId: string, userUniqueId: string, stepData?: Record<string, unknown>): Observable<Onboarding> {\n return from(this.ensureConfigured().onboardings.stepUser(uniqueId, userUniqueId, stepData));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Flows Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listFlows(params?: ListFlowsParams): Observable<PageResult<Flow>> {\n return from(this.ensureConfigured().flows.list(params));\n }\n\n getFlow(uniqueId: string): Observable<Flow> {\n return from(this.ensureConfigured().flows.get(uniqueId));\n }\n\n createFlow(request: CreateFlowRequest): Observable<Flow> {\n return from(this.ensureConfigured().flows.create(request));\n }\n\n updateFlow(uniqueId: string, request: UpdateFlowRequest): Observable<Flow> {\n return from(this.ensureConfigured().flows.update(uniqueId, request));\n }\n\n deleteFlow(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().flows.delete(uniqueId));\n }\n\n listFlowsByOnboarding(onboardingUniqueId: string): Observable<Flow[]> {\n return from(this.ensureConfigured().flows.listByOnboarding(onboardingUniqueId));\n }\n\n getFlowBySource(uniqueId: string, sourceUniqueId: string): Observable<Flow> {\n return from(this.ensureConfigured().flows.getBySource(uniqueId, sourceUniqueId));\n }\n\n stepFlowBySource(uniqueId: string, sourceUniqueId: string, stepData?: Record<string, unknown>): Observable<Flow> {\n return from(this.ensureConfigured().flows.stepBySource(uniqueId, sourceUniqueId, stepData));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // User Journeys Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listUserJourneys(params?: ListUserJourneysParams): Observable<PageResult<UserJourney>> {\n return from(this.ensureConfigured().userJourneys.list(params));\n }\n\n getUserJourney(uniqueId: string): Observable<UserJourney> {\n return from(this.ensureConfigured().userJourneys.get(uniqueId));\n }\n\n startJourney(request: StartJourneyRequest): Observable<UserJourney> {\n return from(this.ensureConfigured().userJourneys.start(request));\n }\n\n completeStep(uniqueId: string, request: CompleteStepRequest): Observable<UserJourney> {\n return from(this.ensureConfigured().userJourneys.completeStep(uniqueId, request));\n }\n\n abandonJourney(uniqueId: string): Observable<UserJourney> {\n return from(this.ensureConfigured().userJourneys.abandon(uniqueId));\n }\n\n getJourneysByUser(userUniqueId: string): Observable<UserJourney[]> {\n return from(this.ensureConfigured().userJourneys.getByUser(userUniqueId));\n }\n\n getJourneyProgress(uniqueId: string): Observable<{ progress: number; currentStep?: number; completedSteps?: number[] }> {\n return from(this.ensureConfigured().userJourneys.getProgress(uniqueId));\n }\n\n listJourneyByUserAndOnboarding(userUniqueId: string, onboardingUniqueId: string): Observable<UserJourney> {\n return from(this.ensureConfigured().userJourneys.listByUserAndOnboarding(userUniqueId, onboardingUniqueId));\n }\n\n reportJourneyList(params: UserJourneyReportParams): Observable<UserJourneyReportList> {\n return from(this.ensureConfigured().userJourneys.reportList(params));\n }\n\n reportJourneySummary(params: UserJourneyReportParams): Observable<UserJourneyReportSummary> {\n return from(this.ensureConfigured().userJourneys.reportSummary(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // User Identities Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listUserIdentities(params?: ListUserIdentitiesParams): Observable<PageResult<UserIdentity>> {\n return from(this.ensureConfigured().userIdentities.list(params));\n }\n\n getUserIdentity(uniqueId: string): Observable<UserIdentity> {\n return from(this.ensureConfigured().userIdentities.get(uniqueId));\n }\n\n createUserIdentity(request: CreateUserIdentityRequest): Observable<UserIdentity> {\n return from(this.ensureConfigured().userIdentities.create(request));\n }\n\n verifyUserIdentity(uniqueId: string, request: VerifyUserIdentityRequest): Observable<UserIdentity> {\n return from(this.ensureConfigured().userIdentities.verify(uniqueId, request));\n }\n\n deleteUserIdentity(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().userIdentities.delete(uniqueId));\n }\n\n listIdentitiesByUser(userUniqueId: string): Observable<UserIdentity[]> {\n return from(this.ensureConfigured().userIdentities.listByUser(userUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Onboard Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n startOnboard(uniqueId: string, data?: StartOnboardRequest): Observable<OnboardJourney> {\n return from(this.ensureConfigured().onboard.start(uniqueId, data));\n }\n\n getOnboard(uniqueId: string): Observable<OnboardJourney> {\n return from(this.ensureConfigured().onboard.get(uniqueId));\n }\n\n getOnboardDetails(uniqueId: string): Observable<OnboardJourneyDetails> {\n return from(this.ensureConfigured().onboard.getDetails(uniqueId));\n }\n\n stepOnboard(uniqueId: string, data: StepOnboardRequest): Observable<OnboardJourney> {\n return from(this.ensureConfigured().onboard.step(uniqueId, data));\n }\n\n logOnboard(uniqueId: string, data: LogOnboardRequest): Observable<OnboardJourney> {\n return from(this.ensureConfigured().onboard.log(uniqueId, data));\n }\n\n suspendOnboard(uniqueId: string): Observable<OnboardJourney> {\n return from(this.ensureConfigured().onboard.suspend(uniqueId));\n }\n\n resumeOnboard(uniqueId: string): Observable<OnboardJourney> {\n return from(this.ensureConfigured().onboard.resume(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Mail Templates Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listMailTemplates(params?: ListMailTemplatesParams): Observable<PageResult<MailTemplate>> {\n return from(this.ensureConfigured().mailTemplates.list(params));\n }\n\n getMailTemplate(uniqueId: string): Observable<MailTemplate> {\n return from(this.ensureConfigured().mailTemplates.get(uniqueId));\n }\n\n createMailTemplate(data: CreateMailTemplateRequest): Observable<MailTemplate> {\n return from(this.ensureConfigured().mailTemplates.create(data));\n }\n\n updateMailTemplate(uniqueId: string, data: UpdateMailTemplateRequest): Observable<MailTemplate> {\n return from(this.ensureConfigured().mailTemplates.update(uniqueId, data));\n }\n\n getMandrillStats(uniqueId: string): Observable<MandrillTemplateStats> {\n return from(this.ensureConfigured().mailTemplates.getMandrillStats(uniqueId));\n }\n\n createMandrillTemplate(uniqueId: string, data: CreateMandrillTemplateRequest): Observable<MailTemplate> {\n return from(this.ensureConfigured().mailTemplates.createMandrillTemplate(uniqueId, data));\n }\n\n updateMandrillTemplate(uniqueId: string, data: UpdateMandrillTemplateRequest): Observable<MailTemplate> {\n return from(this.ensureConfigured().mailTemplates.updateMandrillTemplate(uniqueId, data));\n }\n\n publishMandrill(uniqueId: string): Observable<MailTemplate> {\n return from(this.ensureConfigured().mailTemplates.publishMandrill(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Remarketing Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listAbandonedJourneys(params?: ListAbandonedJourneysParams): Observable<PageResult<AbandonedJourney>> {\n return from(this.ensureConfigured().remarketing.listAbandonedJourneys(params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get onboardingBlock(): OnboardingBlock {\n return this.ensureConfigured();\n }\n}\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport, PageResult } from '@23blocks/contracts';\nimport {\n createUniversityBlock,\n type UniversityBlock,\n type UniversityBlockConfig,\n type Course,\n type CreateCourseRequest,\n type UpdateCourseRequest,\n type ListCoursesParams,\n type Lesson,\n type CreateLessonRequest,\n type UpdateLessonRequest,\n type ListLessonsParams,\n type ReorderLessonsRequest,\n type Enrollment,\n type EnrollRequest,\n type UpdateEnrollmentProgressRequest,\n type ListEnrollmentsParams,\n type Assignment,\n type CreateAssignmentRequest,\n type UpdateAssignmentRequest,\n type ListAssignmentsParams,\n type Submission,\n type SubmitAssignmentRequest,\n type GradeSubmissionRequest,\n type ListSubmissionsParams,\n type Subject,\n type CreateSubjectRequest,\n type UpdateSubjectRequest,\n type ListSubjectsParams,\n type Teacher,\n type ListTeachersParams,\n type TeacherAvailability,\n type CreateAvailabilityRequest,\n type UpdateAvailabilityRequest,\n type Student,\n type ListStudentsParams,\n type RegisterStudentRequest,\n type UpdateStudentRequest,\n type StudentAvailability,\n type CourseGroup,\n type CreateCourseGroupRequest,\n type CoachingSession,\n type CreateCoachingSessionRequest,\n type UpdateCoachingSessionRequest,\n type ListCoachingSessionsParams,\n type ContentTest,\n type TestQuestion,\n type TestOption,\n type CreateContentTestRequest,\n type UpdateContentTestRequest,\n type CreateQuestionRequest,\n type CreateOptionRequest,\n type ListContentTestsParams,\n // Registration token types\n type RegistrationToken,\n type CreateRegistrationTokenRequest,\n type UpdateRegistrationTokenRequest,\n type ListRegistrationTokensParams,\n type TokenValidationResult,\n // Placement types\n type PlacementTest,\n type PlacementSection,\n type PlacementQuestion,\n type PlacementOption,\n type PlacementRule,\n type PlacementInstance,\n type CreatePlacementRequest,\n type CreatePlacementSectionRequest,\n type CreatePlacementQuestionRequest,\n type CreatePlacementOptionRequest,\n type CreatePlacementRuleRequest,\n type PlacementResponse,\n type ListPlacementsParams,\n // Calendar types\n type Availability,\n type CalendarEvent,\n type BulkUpdateAvailabilityRequest,\n type CreateCalendarEventRequest,\n type UpdateCalendarEventRequest,\n type ListCalendarEventsParams,\n // Match types\n type Match,\n type MatchEvaluation,\n type AvailableCoach,\n type AvailableCoachee,\n type CreateMatchRequest,\n type FindCoachesRequest,\n type FindCoacheesRequest,\n type EvaluateMatchesRequest,\n type EvaluateAvailabilitiesRequest,\n // Attendance types\n type Attendance,\n type CreateAttendanceRequest,\n type UpdateAttendanceRequest,\n type ListAttendanceParams,\n type BulkAttendanceRequest,\n type AttendanceStats,\n // Note types\n type Note,\n type CreateNoteRequest,\n type UpdateNoteRequest,\n type ListNotesParams,\n} from '@23blocks/block-university';\nimport { TRANSPORT, UNIVERSITY_TRANSPORT, UNIVERSITY_CONFIG } from '../tokens';\n\n/**\n * Angular service wrapping the University block.\n * Converts Promise-based APIs to RxJS Observables.\n *\n * @example\n * ```typescript\n * @Component({...})\n * export class CourseListComponent {\n * constructor(private university: UniversityService) {}\n *\n * loadCourses() {\n * this.university.listCourses({ page: 1, perPage: 10 }).subscribe({\n * next: (result) => console.log('Courses:', result.data),\n * error: (err) => console.error('Failed:', err),\n * });\n * }\n * }\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 /**\n * Ensure the service is configured, throw helpful error if not\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 // ─────────────────────────────────────────────────────────────────────────────\n // Courses Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCourses(params?: ListCoursesParams): Observable<PageResult<Course>> {\n return from(this.ensureConfigured().courses.list(params));\n }\n\n getCourse(uniqueId: string): Observable<Course> {\n return from(this.ensureConfigured().courses.get(uniqueId));\n }\n\n createCourse(data: CreateCourseRequest): Observable<Course> {\n return from(this.ensureConfigured().courses.create(data));\n }\n\n updateCourse(uniqueId: string, data: UpdateCourseRequest): Observable<Course> {\n return from(this.ensureConfigured().courses.update(uniqueId, data));\n }\n\n deleteCourse(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().courses.delete(uniqueId));\n }\n\n publishCourse(uniqueId: string): Observable<Course> {\n return from(this.ensureConfigured().courses.publish(uniqueId));\n }\n\n unpublishCourse(uniqueId: string): Observable<Course> {\n return from(this.ensureConfigured().courses.unpublish(uniqueId));\n }\n\n listCoursesByInstructor(instructorUniqueId: string, params?: ListCoursesParams): Observable<PageResult<Course>> {\n return from(this.ensureConfigured().courses.listByInstructor(instructorUniqueId, params));\n }\n\n listCoursesByCategory(categoryUniqueId: string, params?: ListCoursesParams): Observable<PageResult<Course>> {\n return from(this.ensureConfigured().courses.listByCategory(categoryUniqueId, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Lessons Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listLessons(params?: ListLessonsParams): Observable<PageResult<Lesson>> {\n return from(this.ensureConfigured().lessons.list(params));\n }\n\n getLesson(uniqueId: string): Observable<Lesson> {\n return from(this.ensureConfigured().lessons.get(uniqueId));\n }\n\n createLesson(data: CreateLessonRequest): Observable<Lesson> {\n return from(this.ensureConfigured().lessons.create(data));\n }\n\n updateLesson(uniqueId: string, data: UpdateLessonRequest): Observable<Lesson> {\n return from(this.ensureConfigured().lessons.update(uniqueId, data));\n }\n\n deleteLesson(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().lessons.delete(uniqueId));\n }\n\n reorderLessons(courseUniqueId: string, data: ReorderLessonsRequest): Observable<Lesson[]> {\n return from(this.ensureConfigured().lessons.reorder(courseUniqueId, data));\n }\n\n listLessonsByCourse(courseUniqueId: string, params?: ListLessonsParams): Observable<PageResult<Lesson>> {\n return from(this.ensureConfigured().lessons.listByCourse(courseUniqueId, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Enrollments Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listEnrollments(params?: ListEnrollmentsParams): Observable<PageResult<Enrollment>> {\n return from(this.ensureConfigured().enrollments.list(params));\n }\n\n getEnrollment(uniqueId: string): Observable<Enrollment> {\n return from(this.ensureConfigured().enrollments.get(uniqueId));\n }\n\n enroll(data: EnrollRequest): Observable<Enrollment> {\n return from(this.ensureConfigured().enrollments.enroll(data));\n }\n\n updateEnrollmentProgress(uniqueId: string, data: UpdateEnrollmentProgressRequest): Observable<Enrollment> {\n return from(this.ensureConfigured().enrollments.updateProgress(uniqueId, data));\n }\n\n completeEnrollment(uniqueId: string): Observable<Enrollment> {\n return from(this.ensureConfigured().enrollments.complete(uniqueId));\n }\n\n dropEnrollment(uniqueId: string): Observable<Enrollment> {\n return from(this.ensureConfigured().enrollments.drop(uniqueId));\n }\n\n listEnrollmentsByCourse(courseUniqueId: string, params?: ListEnrollmentsParams): Observable<PageResult<Enrollment>> {\n return from(this.ensureConfigured().enrollments.listByCourse(courseUniqueId, params));\n }\n\n listEnrollmentsByUser(userUniqueId: string, params?: ListEnrollmentsParams): Observable<PageResult<Enrollment>> {\n return from(this.ensureConfigured().enrollments.listByUser(userUniqueId, params));\n }\n\n getCertificate(uniqueId: string): Observable<{ certificateUrl: string }> {\n return from(this.ensureConfigured().enrollments.getCertificate(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Assignments Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listAssignments(params?: ListAssignmentsParams): Observable<PageResult<Assignment>> {\n return from(this.ensureConfigured().assignments.list(params));\n }\n\n getAssignment(uniqueId: string): Observable<Assignment> {\n return from(this.ensureConfigured().assignments.get(uniqueId));\n }\n\n createAssignment(data: CreateAssignmentRequest): Observable<Assignment> {\n return from(this.ensureConfigured().assignments.create(data));\n }\n\n updateAssignment(uniqueId: string, data: UpdateAssignmentRequest): Observable<Assignment> {\n return from(this.ensureConfigured().assignments.update(uniqueId, data));\n }\n\n deleteAssignment(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().assignments.delete(uniqueId));\n }\n\n listAssignmentsByLesson(lessonUniqueId: string, params?: ListAssignmentsParams): Observable<PageResult<Assignment>> {\n return from(this.ensureConfigured().assignments.listByLesson(lessonUniqueId, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Submissions Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listSubmissions(params?: ListSubmissionsParams): Observable<PageResult<Submission>> {\n return from(this.ensureConfigured().submissions.list(params));\n }\n\n getSubmission(uniqueId: string): Observable<Submission> {\n return from(this.ensureConfigured().submissions.get(uniqueId));\n }\n\n submitAssignment(data: SubmitAssignmentRequest): Observable<Submission> {\n return from(this.ensureConfigured().submissions.submit(data));\n }\n\n gradeSubmission(uniqueId: string, data: GradeSubmissionRequest): Observable<Submission> {\n return from(this.ensureConfigured().submissions.grade(uniqueId, data));\n }\n\n listSubmissionsByAssignment(assignmentUniqueId: string, params?: ListSubmissionsParams): Observable<PageResult<Submission>> {\n return from(this.ensureConfigured().submissions.listByAssignment(assignmentUniqueId, params));\n }\n\n listSubmissionsByUser(userUniqueId: string, params?: ListSubmissionsParams): Observable<PageResult<Submission>> {\n return from(this.ensureConfigured().submissions.listByUser(userUniqueId, params));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Subjects Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listSubjects(params?: ListSubjectsParams): Observable<PageResult<Subject>> {\n return from(this.ensureConfigured().subjects.list(params));\n }\n\n getSubject(uniqueId: string): Observable<Subject> {\n return from(this.ensureConfigured().subjects.get(uniqueId));\n }\n\n createSubject(data: CreateSubjectRequest): Observable<Subject> {\n return from(this.ensureConfigured().subjects.create(data));\n }\n\n updateSubject(uniqueId: string, data: UpdateSubjectRequest): Observable<Subject> {\n return from(this.ensureConfigured().subjects.update(uniqueId, data));\n }\n\n getSubjectResources(uniqueId: string): Observable<unknown[]> {\n return from(this.ensureConfigured().subjects.getResources(uniqueId));\n }\n\n getSubjectTeacherResources(uniqueId: string, teacherUniqueId: string): Observable<unknown[]> {\n return from(this.ensureConfigured().subjects.getTeacherResources(uniqueId, teacherUniqueId));\n }\n\n getSubjectTests(uniqueId: string): Observable<unknown[]> {\n return from(this.ensureConfigured().subjects.getTests(uniqueId));\n }\n\n addSubjectLesson(uniqueId: string, lessonData: { name: string; description?: string }): Observable<unknown> {\n return from(this.ensureConfigured().subjects.addLesson(uniqueId, lessonData));\n }\n\n addSubjectResource(uniqueId: string, resourceData: unknown): Observable<unknown> {\n return from(this.ensureConfigured().subjects.addResource(uniqueId, resourceData));\n }\n\n updateSubjectResource(uniqueId: string, resourceUniqueId: string, resourceData: unknown): Observable<unknown> {\n return from(this.ensureConfigured().subjects.updateResource(uniqueId, resourceUniqueId, resourceData));\n }\n\n deleteSubjectResource(uniqueId: string, resourceUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().subjects.deleteResource(uniqueId, resourceUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Teachers Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listTeachers(params?: ListTeachersParams): Observable<PageResult<Teacher>> {\n return from(this.ensureConfigured().teachers.list(params));\n }\n\n listArchivedTeachers(params?: ListTeachersParams): Observable<PageResult<Teacher>> {\n return from(this.ensureConfigured().teachers.listArchived(params));\n }\n\n getTeacher(uniqueId: string): Observable<Teacher> {\n return from(this.ensureConfigured().teachers.get(uniqueId));\n }\n\n getTeacherCourses(uniqueId: string): Observable<Course[]> {\n return from(this.ensureConfigured().teachers.getCourses(uniqueId));\n }\n\n getTeacherGroups(uniqueId: string): Observable<CourseGroup[]> {\n return from(this.ensureConfigured().teachers.getGroups(uniqueId));\n }\n\n getTeacherAvailability(uniqueId: string): Observable<TeacherAvailability[]> {\n return from(this.ensureConfigured().teachers.getAvailability(uniqueId));\n }\n\n addTeacherAvailability(uniqueId: string, data: CreateAvailabilityRequest): Observable<TeacherAvailability> {\n return from(this.ensureConfigured().teachers.addAvailability(uniqueId, data));\n }\n\n updateTeacherAvailability(uniqueId: string, availabilityUniqueId: string, data: UpdateAvailabilityRequest): Observable<TeacherAvailability> {\n return from(this.ensureConfigured().teachers.updateAvailability(uniqueId, availabilityUniqueId, data));\n }\n\n deleteTeacherAvailability(uniqueId: string, availabilityUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().teachers.deleteAvailability(uniqueId, availabilityUniqueId));\n }\n\n deleteAllTeacherAvailability(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().teachers.deleteAllAvailability(uniqueId));\n }\n\n getTeacherContentTree(uniqueId: string, courseGroupUniqueId: string): Observable<unknown> {\n return from(this.ensureConfigured().teachers.getContentTree(uniqueId, courseGroupUniqueId));\n }\n\n getTeacherStudentContentTree(uniqueId: string, userUniqueId: string, courseGroupUniqueId: string): Observable<unknown> {\n return from(this.ensureConfigured().teachers.getStudentContentTree(uniqueId, userUniqueId, courseGroupUniqueId));\n }\n\n promoteStudent(teacherUniqueId: string, userUniqueId: string): Observable<unknown> {\n return from(this.ensureConfigured().teachers.promoteStudent(teacherUniqueId, userUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Students Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listStudents(params?: ListStudentsParams): Observable<PageResult<Student>> {\n return from(this.ensureConfigured().students.list(params));\n }\n\n listArchivedStudents(params?: ListStudentsParams): Observable<PageResult<Student>> {\n return from(this.ensureConfigured().students.listArchived(params));\n }\n\n getStudent(uniqueId: string): Observable<Student> {\n return from(this.ensureConfigured().students.get(uniqueId));\n }\n\n registerStudent(uniqueId: string, data: RegisterStudentRequest): Observable<Student> {\n return from(this.ensureConfigured().students.register(uniqueId, data));\n }\n\n updateStudent(uniqueId: string, data: UpdateStudentRequest): Observable<Student> {\n return from(this.ensureConfigured().students.update(uniqueId, data));\n }\n\n archiveStudent(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().students.archive(uniqueId));\n }\n\n restoreStudent(uniqueId: string): Observable<Student> {\n return from(this.ensureConfigured().students.restore(uniqueId));\n }\n\n getStudentCourses(uniqueId: string): Observable<Course[]> {\n return from(this.ensureConfigured().students.getCourses(uniqueId));\n }\n\n getStudentAvailableCourses(uniqueId: string): Observable<Course[]> {\n return from(this.ensureConfigured().students.getAvailableCourses(uniqueId));\n }\n\n getStudentGroups(uniqueId: string): Observable<CourseGroup[]> {\n return from(this.ensureConfigured().students.getGroups(uniqueId));\n }\n\n getStudentContentTree(uniqueId: string, courseGroupUniqueId: string): Observable<unknown> {\n return from(this.ensureConfigured().students.getContentTree(uniqueId, courseGroupUniqueId));\n }\n\n getStudentAvailability(uniqueId: string): Observable<StudentAvailability[]> {\n return from(this.ensureConfigured().students.getAvailability(uniqueId));\n }\n\n addStudentAvailability(uniqueId: string, data: { dayOfWeek: number; startTime: string; endTime: string; timezone?: string }): Observable<StudentAvailability> {\n return from(this.ensureConfigured().students.addAvailability(uniqueId, data));\n }\n\n updateStudentAvailability(uniqueId: string, availabilityUniqueId: string, data: { dayOfWeek?: number; startTime?: string; endTime?: string; timezone?: string }): Observable<StudentAvailability> {\n return from(this.ensureConfigured().students.updateAvailability(uniqueId, availabilityUniqueId, data));\n }\n\n updateStudentAvailabilitySlots(uniqueId: string, slots: { dayOfWeek: number; startTime: string; endTime: string }[]): Observable<StudentAvailability[]> {\n return from(this.ensureConfigured().students.updateAvailabilitySlots(uniqueId, slots));\n }\n\n deleteStudentAvailability(uniqueId: string, availabilityUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().students.deleteAvailability(uniqueId, availabilityUniqueId));\n }\n\n deleteAllStudentAvailability(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().students.deleteAllAvailability(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Course Groups Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getCourseGroup(uniqueId: string): Observable<CourseGroup> {\n return from(this.ensureConfigured().courseGroups.get(uniqueId));\n }\n\n createCourseGroup(data: CreateCourseGroupRequest): Observable<CourseGroup> {\n return from(this.ensureConfigured().courseGroups.create(data));\n }\n\n addStudentToCourseGroup(uniqueId: string, studentUniqueId: string): Observable<CourseGroup> {\n return from(this.ensureConfigured().courseGroups.addStudent(uniqueId, studentUniqueId));\n }\n\n addTeacherToCourseGroup(uniqueId: string, teacherUniqueId: string): Observable<CourseGroup> {\n return from(this.ensureConfigured().courseGroups.addTeacher(uniqueId, teacherUniqueId));\n }\n\n getCourseGroupTests(uniqueId: string): Observable<unknown[]> {\n return from(this.ensureConfigured().courseGroups.getTests(uniqueId));\n }\n\n getCourseGroupTestResponses(uniqueId: string, testUniqueId: string): Observable<unknown[]> {\n return from(this.ensureConfigured().courseGroups.getTestResponses(uniqueId, testUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Coaching Sessions Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listCoachingSessions(params?: ListCoachingSessionsParams): Observable<PageResult<CoachingSession>> {\n return from(this.ensureConfigured().coachingSessions.list(params));\n }\n\n createCoachingSession(data: CreateCoachingSessionRequest): Observable<CoachingSession> {\n return from(this.ensureConfigured().coachingSessions.create(data));\n }\n\n updateCoachingSession(uniqueId: string, data: UpdateCoachingSessionRequest): Observable<CoachingSession> {\n return from(this.ensureConfigured().coachingSessions.update(uniqueId, data));\n }\n\n deleteCoachingSession(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().coachingSessions.delete(uniqueId));\n }\n\n getCoachingSessionsByStudent(studentUniqueId: string): Observable<CoachingSession[]> {\n return from(this.ensureConfigured().coachingSessions.getByStudent(studentUniqueId));\n }\n\n getCoachingSessionsByTeacher(teacherUniqueId: string): Observable<CoachingSession[]> {\n return from(this.ensureConfigured().coachingSessions.getByTeacher(teacherUniqueId));\n }\n\n studentConfirmCoachingSession(uniqueId: string): Observable<CoachingSession> {\n return from(this.ensureConfigured().coachingSessions.studentConfirm(uniqueId));\n }\n\n studentCheckInCoachingSession(uniqueId: string): Observable<CoachingSession> {\n return from(this.ensureConfigured().coachingSessions.studentCheckIn(uniqueId));\n }\n\n studentCheckOutCoachingSession(uniqueId: string): Observable<CoachingSession> {\n return from(this.ensureConfigured().coachingSessions.studentCheckOut(uniqueId));\n }\n\n addStudentNotesToCoachingSession(uniqueId: string, notes: string): Observable<CoachingSession> {\n return from(this.ensureConfigured().coachingSessions.studentNotes(uniqueId, notes));\n }\n\n teacherConfirmCoachingSession(uniqueId: string): Observable<CoachingSession> {\n return from(this.ensureConfigured().coachingSessions.teacherConfirm(uniqueId));\n }\n\n teacherCheckInCoachingSession(uniqueId: string): Observable<CoachingSession> {\n return from(this.ensureConfigured().coachingSessions.teacherCheckIn(uniqueId));\n }\n\n teacherCheckOutCoachingSession(uniqueId: string): Observable<CoachingSession> {\n return from(this.ensureConfigured().coachingSessions.teacherCheckOut(uniqueId));\n }\n\n addAdminNotesToCoachingSession(uniqueId: string, notes: string): Observable<CoachingSession> {\n return from(this.ensureConfigured().coachingSessions.adminNotes(uniqueId, notes));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Content Tests Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listContentTests(params?: ListContentTestsParams): Observable<PageResult<ContentTest>> {\n return from(this.ensureConfigured().tests.list(params));\n }\n\n getContentTest(uniqueId: string): Observable<ContentTest> {\n return from(this.ensureConfigured().tests.get(uniqueId));\n }\n\n createContentTest(data: CreateContentTestRequest): Observable<ContentTest> {\n return from(this.ensureConfigured().tests.create(data));\n }\n\n updateContentTest(uniqueId: string, data: UpdateContentTestRequest): Observable<ContentTest> {\n return from(this.ensureConfigured().tests.update(uniqueId, data));\n }\n\n getContentTestResults(uniqueId: string): Observable<unknown[]> {\n return from(this.ensureConfigured().tests.getResults(uniqueId));\n }\n\n getContentTestSolution(uniqueId: string): Observable<unknown> {\n return from(this.ensureConfigured().tests.getSolution(uniqueId));\n }\n\n createTestQuestion(uniqueId: string, data: CreateQuestionRequest): Observable<TestQuestion> {\n return from(this.ensureConfigured().tests.createQuestion(uniqueId, data));\n }\n\n updateTestQuestion(uniqueId: string, questionUniqueId: string, data: Partial<CreateQuestionRequest>): Observable<TestQuestion> {\n return from(this.ensureConfigured().tests.updateQuestion(uniqueId, questionUniqueId, data));\n }\n\n getTestQuestion(uniqueId: string, questionId: string): Observable<TestQuestion> {\n return from(this.ensureConfigured().tests.getQuestion(uniqueId, questionId));\n }\n\n listTestOptions(): Observable<TestOption[]> {\n return from(this.ensureConfigured().tests.listOptions());\n }\n\n createTestOption(data: CreateOptionRequest): Observable<TestOption> {\n return from(this.ensureConfigured().tests.createOption(data));\n }\n\n updateTestOption(uniqueId: string, optionUniqueId: string, data: Partial<CreateOptionRequest>): Observable<TestOption> {\n return from(this.ensureConfigured().tests.updateOption(uniqueId, optionUniqueId, data));\n }\n\n addOptionToQuestion(uniqueId: string, questionId: string, optionId: string): Observable<TestQuestion> {\n return from(this.ensureConfigured().tests.addOptionToQuestion(uniqueId, questionId, optionId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Registration Tokens Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listRegistrationTokens(params?: ListRegistrationTokensParams): Observable<PageResult<RegistrationToken>> {\n return from(this.ensureConfigured().registrationTokens.list(params));\n }\n\n getRegistrationToken(uniqueId: string): Observable<RegistrationToken> {\n return from(this.ensureConfigured().registrationTokens.get(uniqueId));\n }\n\n createRegistrationToken(data: CreateRegistrationTokenRequest): Observable<RegistrationToken> {\n return from(this.ensureConfigured().registrationTokens.create(data));\n }\n\n updateRegistrationToken(uniqueId: string, data: UpdateRegistrationTokenRequest): Observable<RegistrationToken> {\n return from(this.ensureConfigured().registrationTokens.update(uniqueId, data));\n }\n\n deleteRegistrationToken(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().registrationTokens.delete(uniqueId));\n }\n\n validateRegistrationToken(tokenCode: string): Observable<TokenValidationResult> {\n return from(this.ensureConfigured().registrationTokens.validate(tokenCode));\n }\n\n useRegistrationToken(tokenCode: string, userUniqueId: string): Observable<{ success: boolean; enrollmentUniqueId?: string; error?: string }> {\n return from(this.ensureConfigured().registrationTokens.use(tokenCode, userUniqueId));\n }\n\n revokeRegistrationToken(uniqueId: string): Observable<RegistrationToken> {\n return from(this.ensureConfigured().registrationTokens.revoke(uniqueId));\n }\n\n generateRegistrationTokenBatch(request: CreateRegistrationTokenRequest & { count: number }): Observable<RegistrationToken[]> {\n return from(this.ensureConfigured().registrationTokens.generateBatch(request));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Placements Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getPlacement(uniqueId: string): Observable<PlacementTest> {\n return from(this.ensureConfigured().placements.get(uniqueId));\n }\n\n listPlacementsByCourse(courseUniqueId: string, params?: ListPlacementsParams): Observable<PageResult<PlacementTest>> {\n return from(this.ensureConfigured().placements.listByCourse(courseUniqueId, params));\n }\n\n createPlacement(courseUniqueId: string, data: CreatePlacementRequest): Observable<PlacementTest> {\n return from(this.ensureConfigured().placements.create(courseUniqueId, data));\n }\n\n getPlacementSection(placementUniqueId: string, sectionId: string): Observable<PlacementSection> {\n return from(this.ensureConfigured().placements.getSection(placementUniqueId, sectionId));\n }\n\n createPlacementSection(placementUniqueId: string, data: CreatePlacementSectionRequest): Observable<PlacementSection> {\n return from(this.ensureConfigured().placements.createSection(placementUniqueId, data));\n }\n\n getPlacementQuestion(placementUniqueId: string, questionId: string): Observable<PlacementQuestion> {\n return from(this.ensureConfigured().placements.getQuestion(placementUniqueId, questionId));\n }\n\n createPlacementQuestion(placementUniqueId: string, data: CreatePlacementQuestionRequest): Observable<PlacementQuestion> {\n return from(this.ensureConfigured().placements.createQuestion(placementUniqueId, data));\n }\n\n addQuestionToPlacementSection(placementUniqueId: string, sectionId: string, questionId: string): Observable<void> {\n return from(this.ensureConfigured().placements.addQuestionToSection(placementUniqueId, sectionId, questionId));\n }\n\n listPlacementOptions(): Observable<PlacementOption[]> {\n return from(this.ensureConfigured().placements.listOptions());\n }\n\n createPlacementOption(data: CreatePlacementOptionRequest): Observable<PlacementOption> {\n return from(this.ensureConfigured().placements.createOption(data));\n }\n\n addOptionToPlacementQuestion(placementUniqueId: string, questionId: string, optionId: string): Observable<void> {\n return from(this.ensureConfigured().placements.addOptionToQuestion(placementUniqueId, questionId, optionId));\n }\n\n setPlacementRightOption(placementUniqueId: string, questionId: string, optionId: string): Observable<void> {\n return from(this.ensureConfigured().placements.setRightOption(placementUniqueId, questionId, optionId));\n }\n\n removePlacementOption(placementUniqueId: string, questionId: string, optionId: string): Observable<void> {\n return from(this.ensureConfigured().placements.removeOption(placementUniqueId, questionId, optionId));\n }\n\n createPlacementRule(placementUniqueId: string, data: CreatePlacementRuleRequest): Observable<PlacementRule> {\n return from(this.ensureConfigured().placements.createRule(placementUniqueId, data));\n }\n\n getUserPlacement(userUniqueId: string): Observable<PlacementInstance | null> {\n return from(this.ensureConfigured().placements.getUserPlacement(userUniqueId));\n }\n\n startPlacement(userUniqueId: string, placementUniqueId: string): Observable<PlacementInstance> {\n return from(this.ensureConfigured().placements.startPlacement(userUniqueId, placementUniqueId));\n }\n\n submitPlacementResponse(userUniqueId: string, instanceUniqueId: string, responses: PlacementResponse[]): Observable<PlacementInstance> {\n return from(this.ensureConfigured().placements.submitResponse(userUniqueId, instanceUniqueId, responses));\n }\n\n finishPlacement(userUniqueId: string, instanceUniqueId: string): Observable<PlacementInstance> {\n return from(this.ensureConfigured().placements.finishPlacement(userUniqueId, instanceUniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Calendars Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n getCalendarStudentAvailability(userUniqueId: string): Observable<Availability[]> {\n return from(this.ensureConfigured().calendars.getStudentAvailability(userUniqueId));\n }\n\n addCalendarStudentAvailability(userUniqueId: string, data: CreateAvailabilityRequest): Observable<Availability> {\n return from(this.ensureConfigured().calendars.addStudentAvailability(userUniqueId, data));\n }\n\n updateCalendarStudentAvailability(userUniqueId: string, availabilityUniqueId: string, data: UpdateAvailabilityRequest): Observable<Availability> {\n return from(this.ensureConfigured().calendars.updateStudentAvailability(userUniqueId, availabilityUniqueId, data));\n }\n\n updateCalendarStudentAvailabilities(userUniqueId: string, data: BulkUpdateAvailabilityRequest): Observable<Availability[]> {\n return from(this.ensureConfigured().calendars.updateStudentAvailabilities(userUniqueId, data));\n }\n\n deleteCalendarStudentAvailability(userUniqueId: string, availabilityUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().calendars.deleteStudentAvailability(userUniqueId, availabilityUniqueId));\n }\n\n deleteAllCalendarStudentAvailability(userUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().calendars.deleteAllStudentAvailability(userUniqueId));\n }\n\n getCalendarTeacherAvailability(teacherUniqueId: string): Observable<Availability[]> {\n return from(this.ensureConfigured().calendars.getTeacherAvailability(teacherUniqueId));\n }\n\n addCalendarTeacherAvailability(teacherUniqueId: string, data: CreateAvailabilityRequest): Observable<Availability> {\n return from(this.ensureConfigured().calendars.addTeacherAvailability(teacherUniqueId, data));\n }\n\n updateCalendarTeacherAvailability(teacherUniqueId: string, availabilityUniqueId: string, data: UpdateAvailabilityRequest): Observable<Availability> {\n return from(this.ensureConfigured().calendars.updateTeacherAvailability(teacherUniqueId, availabilityUniqueId, data));\n }\n\n deleteCalendarTeacherAvailability(teacherUniqueId: string, availabilityUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().calendars.deleteTeacherAvailability(teacherUniqueId, availabilityUniqueId));\n }\n\n deleteAllCalendarTeacherAvailability(teacherUniqueId: string): Observable<void> {\n return from(this.ensureConfigured().calendars.deleteAllTeacherAvailability(teacherUniqueId));\n }\n\n listCalendarEvents(params?: ListCalendarEventsParams): Observable<PageResult<CalendarEvent>> {\n return from(this.ensureConfigured().calendars.listEvents(params));\n }\n\n getCalendarEvent(uniqueId: string): Observable<CalendarEvent> {\n return from(this.ensureConfigured().calendars.getEvent(uniqueId));\n }\n\n createCalendarEvent(data: CreateCalendarEventRequest): Observable<CalendarEvent> {\n return from(this.ensureConfigured().calendars.createEvent(data));\n }\n\n updateCalendarEvent(uniqueId: string, data: UpdateCalendarEventRequest): Observable<CalendarEvent> {\n return from(this.ensureConfigured().calendars.updateEvent(uniqueId, data));\n }\n\n deleteCalendarEvent(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().calendars.deleteEvent(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Matches Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n createMatch(data: CreateMatchRequest): Observable<Match> {\n return from(this.ensureConfigured().matches.create(data));\n }\n\n activateMatch(uniqueId: string): Observable<Match> {\n return from(this.ensureConfigured().matches.activate(uniqueId));\n }\n\n deactivateMatch(uniqueId: string): Observable<Match> {\n return from(this.ensureConfigured().matches.deactivate(uniqueId));\n }\n\n deleteMatch(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().matches.delete(uniqueId));\n }\n\n getActiveMatchByStudent(studentUniqueId: string): Observable<Match | null> {\n return from(this.ensureConfigured().matches.getActiveByStudent(studentUniqueId));\n }\n\n getAllMatchesByStudent(studentUniqueId: string): Observable<Match[]> {\n return from(this.ensureConfigured().matches.getAllByStudent(studentUniqueId));\n }\n\n getAvailableMatchesByStudent(studentUniqueId: string): Observable<Match[]> {\n return from(this.ensureConfigured().matches.getAvailableByStudent(studentUniqueId));\n }\n\n getActiveMatchByTeacher(teacherUniqueId: string): Observable<Match | null> {\n return from(this.ensureConfigured().matches.getActiveByTeacher(teacherUniqueId));\n }\n\n getAllMatchesByTeacher(teacherUniqueId: string): Observable<Match[]> {\n return from(this.ensureConfigured().matches.getAllByTeacher(teacherUniqueId));\n }\n\n getAvailableMatchesByTeacher(teacherUniqueId: string): Observable<Match[]> {\n return from(this.ensureConfigured().matches.getAvailableByTeacher(teacherUniqueId));\n }\n\n findCoaches(studentUniqueId: string, request?: FindCoachesRequest): Observable<AvailableCoach[]> {\n return from(this.ensureConfigured().matches.findCoaches(studentUniqueId, request));\n }\n\n findCoachees(teacherUniqueId: string, request?: FindCoacheesRequest): Observable<AvailableCoachee[]> {\n return from(this.ensureConfigured().matches.findCoachees(teacherUniqueId, request));\n }\n\n evaluateMatches(request: EvaluateMatchesRequest): Observable<MatchEvaluation[]> {\n return from(this.ensureConfigured().matches.evaluateMatches(request));\n }\n\n evaluateAvailabilities(request: EvaluateAvailabilitiesRequest): Observable<MatchEvaluation[]> {\n return from(this.ensureConfigured().matches.evaluateAvailabilities(request));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Attendance Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listAttendance(params?: ListAttendanceParams): Observable<PageResult<Attendance>> {\n return from(this.ensureConfigured().attendance.list(params));\n }\n\n getAttendance(uniqueId: string): Observable<Attendance> {\n return from(this.ensureConfigured().attendance.get(uniqueId));\n }\n\n createAttendance(data: CreateAttendanceRequest): Observable<Attendance> {\n return from(this.ensureConfigured().attendance.create(data));\n }\n\n updateAttendance(uniqueId: string, data: UpdateAttendanceRequest): Observable<Attendance> {\n return from(this.ensureConfigured().attendance.update(uniqueId, data));\n }\n\n deleteAttendance(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().attendance.delete(uniqueId));\n }\n\n bulkCreateAttendance(data: BulkAttendanceRequest): Observable<Attendance[]> {\n return from(this.ensureConfigured().attendance.bulkCreate(data));\n }\n\n listAttendanceByLesson(lessonUniqueId: string, params?: ListAttendanceParams): Observable<PageResult<Attendance>> {\n return from(this.ensureConfigured().attendance.listByLesson(lessonUniqueId, params));\n }\n\n listAttendanceByStudent(studentUniqueId: string, params?: ListAttendanceParams): Observable<PageResult<Attendance>> {\n return from(this.ensureConfigured().attendance.listByStudent(studentUniqueId, params));\n }\n\n listAttendanceByCourse(courseUniqueId: string, params?: ListAttendanceParams): Observable<PageResult<Attendance>> {\n return from(this.ensureConfigured().attendance.listByCourse(courseUniqueId, params));\n }\n\n getStudentAttendanceStats(studentUniqueId: string, courseUniqueId?: string): Observable<AttendanceStats> {\n return from(this.ensureConfigured().attendance.getStudentStats(studentUniqueId, courseUniqueId));\n }\n\n verifyAttendance(uniqueId: string): Observable<Attendance> {\n return from(this.ensureConfigured().attendance.verify(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Notes Service\n // ─────────────────────────────────────────────────────────────────────────────\n\n listNotes(params?: ListNotesParams): Observable<PageResult<Note>> {\n return from(this.ensureConfigured().notes.list(params));\n }\n\n getNote(uniqueId: string): Observable<Note> {\n return from(this.ensureConfigured().notes.get(uniqueId));\n }\n\n createNote(data: CreateNoteRequest): Observable<Note> {\n return from(this.ensureConfigured().notes.create(data));\n }\n\n updateNote(uniqueId: string, data: UpdateNoteRequest): Observable<Note> {\n return from(this.ensureConfigured().notes.update(uniqueId, data));\n }\n\n deleteNote(uniqueId: string): Observable<void> {\n return from(this.ensureConfigured().notes.delete(uniqueId));\n }\n\n listNotesByAuthor(authorUniqueId: string, params?: ListNotesParams): Observable<PageResult<Note>> {\n return from(this.ensureConfigured().notes.listByAuthor(authorUniqueId, params));\n }\n\n listNotesByTarget(targetUniqueId: string, targetType: string, params?: ListNotesParams): Observable<PageResult<Note>> {\n return from(this.ensureConfigured().notes.listByTarget(targetUniqueId, targetType, params));\n }\n\n listNotesByCourse(courseUniqueId: string, params?: ListNotesParams): Observable<PageResult<Note>> {\n return from(this.ensureConfigured().notes.listByCourse(courseUniqueId, params));\n }\n\n listNotesByLesson(lessonUniqueId: string, params?: ListNotesParams): Observable<PageResult<Note>> {\n return from(this.ensureConfigured().notes.listByLesson(lessonUniqueId, params));\n }\n\n pinNote(uniqueId: string): Observable<Note> {\n return from(this.ensureConfigured().notes.pin(uniqueId));\n }\n\n unpinNote(uniqueId: string): Observable<Note> {\n return from(this.ensureConfigured().notes.unpin(uniqueId));\n }\n\n getNoteReplies(uniqueId: string): Observable<Note[]> {\n return from(this.ensureConfigured().notes.getReplies(uniqueId));\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n * Use this when you need access to services not wrapped by this Angular service\n */\n get universityBlock(): UniversityBlock {\n return this.ensureConfigured();\n }\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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"}