@23blocks/angular 0.1.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/lib/assets/assets.service.js +110 -0
  2. package/dist/lib/assets/assets.service.js.map +1 -0
  3. package/dist/lib/assets/index.js +3 -0
  4. package/dist/lib/assets/index.js.map +1 -0
  5. package/dist/lib/authentication/authentication.service.js +89 -10
  6. package/dist/lib/authentication/authentication.service.js.map +1 -1
  7. package/dist/lib/campaigns/campaigns.service.js +137 -0
  8. package/dist/lib/campaigns/campaigns.service.js.map +1 -0
  9. package/dist/lib/campaigns/index.js +3 -0
  10. package/dist/lib/campaigns/index.js.map +1 -0
  11. package/dist/lib/company/company.service.js +137 -0
  12. package/dist/lib/company/company.service.js.map +1 -0
  13. package/dist/lib/company/index.js +3 -0
  14. package/dist/lib/company/index.js.map +1 -0
  15. package/dist/lib/content/content.service.js +140 -0
  16. package/dist/lib/content/content.service.js.map +1 -0
  17. package/dist/lib/content/index.js +3 -0
  18. package/dist/lib/content/index.js.map +1 -0
  19. package/dist/lib/conversations/conversations.service.js +164 -0
  20. package/dist/lib/conversations/conversations.service.js.map +1 -0
  21. package/dist/lib/conversations/index.js +3 -0
  22. package/dist/lib/conversations/index.js.map +1 -0
  23. package/dist/lib/crm/crm.service.js +197 -0
  24. package/dist/lib/crm/crm.service.js.map +1 -0
  25. package/dist/lib/crm/index.js +3 -0
  26. package/dist/lib/crm/index.js.map +1 -0
  27. package/dist/lib/files/files.service.js +107 -0
  28. package/dist/lib/files/files.service.js.map +1 -0
  29. package/dist/lib/files/index.js +3 -0
  30. package/dist/lib/files/index.js.map +1 -0
  31. package/dist/lib/forms/forms.service.js +119 -0
  32. package/dist/lib/forms/forms.service.js.map +1 -0
  33. package/dist/lib/forms/index.js +3 -0
  34. package/dist/lib/forms/index.js.map +1 -0
  35. package/dist/lib/geolocation/geolocation.service.js +227 -0
  36. package/dist/lib/geolocation/geolocation.service.js.map +1 -0
  37. package/dist/lib/geolocation/index.js +3 -0
  38. package/dist/lib/geolocation/index.js.map +1 -0
  39. package/dist/lib/index.js +25 -2
  40. package/dist/lib/index.js.map +1 -1
  41. package/dist/lib/jarvis/index.js +3 -0
  42. package/dist/lib/jarvis/index.js.map +1 -0
  43. package/dist/lib/jarvis/jarvis.service.js +149 -0
  44. package/dist/lib/jarvis/jarvis.service.js.map +1 -0
  45. package/dist/lib/onboarding/index.js +3 -0
  46. package/dist/lib/onboarding/index.js.map +1 -0
  47. package/dist/lib/onboarding/onboarding.service.js +119 -0
  48. package/dist/lib/onboarding/onboarding.service.js.map +1 -0
  49. package/dist/lib/products/index.js +3 -0
  50. package/dist/lib/products/index.js.map +1 -0
  51. package/dist/lib/products/products.service.js +242 -0
  52. package/dist/lib/products/products.service.js.map +1 -0
  53. package/dist/lib/providers.js +195 -1
  54. package/dist/lib/providers.js.map +1 -1
  55. package/dist/lib/rewards/index.js +3 -0
  56. package/dist/lib/rewards/index.js.map +1 -0
  57. package/dist/lib/rewards/rewards.service.js +125 -0
  58. package/dist/lib/rewards/rewards.service.js.map +1 -0
  59. package/dist/lib/sales/index.js +3 -0
  60. package/dist/lib/sales/index.js.map +1 -0
  61. package/dist/lib/sales/sales.service.js +125 -0
  62. package/dist/lib/sales/sales.service.js.map +1 -0
  63. package/dist/lib/simple-providers.js +400 -0
  64. package/dist/lib/simple-providers.js.map +1 -0
  65. package/dist/lib/tokens.js +48 -0
  66. package/dist/lib/tokens.js.map +1 -1
  67. package/dist/lib/university/index.js +3 -0
  68. package/dist/lib/university/index.js.map +1 -0
  69. package/dist/lib/university/university.service.js +161 -0
  70. package/dist/lib/university/university.service.js.map +1 -0
  71. package/dist/lib/wallet/index.js +3 -0
  72. package/dist/lib/wallet/index.js.map +1 -0
  73. package/dist/lib/wallet/wallet.service.js +98 -0
  74. package/dist/lib/wallet/wallet.service.js.map +1 -0
  75. package/package.json +20 -3
@@ -0,0 +1,400 @@
1
+ import { _ as _extends } from "@swc/helpers/_/_extends";
2
+ import { InjectionToken, makeEnvironmentProviders } from '@angular/core';
3
+ import { createHttpTransport } from '@23blocks/transport-http';
4
+ import { TRANSPORT, AUTHENTICATION_CONFIG, SEARCH_CONFIG, PRODUCTS_CONFIG, CRM_CONFIG, CONTENT_CONFIG, GEOLOCATION_CONFIG, CONVERSATIONS_CONFIG, FILES_CONFIG, FORMS_CONFIG, ASSETS_CONFIG, CAMPAIGNS_CONFIG, COMPANY_CONFIG, REWARDS_CONFIG, SALES_CONFIG, WALLET_CONFIG, JARVIS_CONFIG, ONBOARDING_CONFIG, UNIVERSITY_CONFIG } from './tokens.js';
5
+ /**
6
+ * Injection token for the token manager (internal use)
7
+ */ export const TOKEN_MANAGER = new InjectionToken('23blocks.token-manager');
8
+ /**
9
+ * Injection token for simple config
10
+ */ export const SIMPLE_CONFIG = new InjectionToken('23blocks.simple-config');
11
+ /**
12
+ * Generate storage key scoped to app and tenant
13
+ */ function getStorageKey(type, appId, tenantId) {
14
+ const scope = tenantId ? `${appId}_${tenantId}` : appId;
15
+ return `23blocks_${scope}_${type}_token`;
16
+ }
17
+ /**
18
+ * In-memory storage for SSR
19
+ */ let MemoryStorage = class MemoryStorage {
20
+ getItem(key) {
21
+ var _this_data_get;
22
+ return (_this_data_get = this.data.get(key)) != null ? _this_data_get : null;
23
+ }
24
+ setItem(key, value) {
25
+ this.data.set(key, value);
26
+ }
27
+ removeItem(key) {
28
+ this.data.delete(key);
29
+ }
30
+ constructor(){
31
+ this.data = new Map();
32
+ }
33
+ };
34
+ /**
35
+ * Create a token manager with scoped storage keys and cross-tab sync
36
+ */ function createTokenManager(appId, storageType, tenantId) {
37
+ const isBrowser = typeof window !== 'undefined' && typeof window.localStorage !== 'undefined';
38
+ const accessTokenKey = getStorageKey('access', appId, tenantId);
39
+ const refreshTokenKey = getStorageKey('refresh', appId, tenantId);
40
+ let storage;
41
+ if (!isBrowser) {
42
+ storage = new MemoryStorage();
43
+ } else {
44
+ switch(storageType){
45
+ case 'sessionStorage':
46
+ storage = window.sessionStorage;
47
+ break;
48
+ case 'memory':
49
+ storage = new MemoryStorage();
50
+ break;
51
+ default:
52
+ storage = window.localStorage;
53
+ }
54
+ }
55
+ return {
56
+ getAccessToken () {
57
+ try {
58
+ return storage.getItem(accessTokenKey);
59
+ } catch (e) {
60
+ return null;
61
+ }
62
+ },
63
+ getRefreshToken () {
64
+ try {
65
+ return storage.getItem(refreshTokenKey);
66
+ } catch (e) {
67
+ return null;
68
+ }
69
+ },
70
+ setTokens (accessToken, refreshToken) {
71
+ try {
72
+ storage.setItem(accessTokenKey, accessToken);
73
+ if (refreshToken) {
74
+ storage.setItem(refreshTokenKey, refreshToken);
75
+ }
76
+ } catch (e) {
77
+ console.warn('[23blocks] Unable to store tokens');
78
+ }
79
+ },
80
+ clearTokens () {
81
+ try {
82
+ storage.removeItem(accessTokenKey);
83
+ storage.removeItem(refreshTokenKey);
84
+ } catch (e) {
85
+ // Silently fail
86
+ }
87
+ },
88
+ onStorageChange (callback) {
89
+ // Only works in browser with localStorage/sessionStorage
90
+ if (!isBrowser || storageType === 'memory') {
91
+ // Return no-op unsubscribe for SSR/memory storage
92
+ return ()=>{};
93
+ }
94
+ const handler = (event)=>{
95
+ // Only trigger if our keys changed
96
+ if (event.key === accessTokenKey || event.key === refreshTokenKey) {
97
+ callback();
98
+ }
99
+ };
100
+ window.addEventListener('storage', handler);
101
+ // Return unsubscribe function
102
+ return ()=>{
103
+ window.removeEventListener('storage', handler);
104
+ };
105
+ }
106
+ };
107
+ }
108
+ /**
109
+ * Create transport with automatic token handling
110
+ */ function createTransportWithAuth(config, tokenManager) {
111
+ return createHttpTransport({
112
+ baseUrl: config.baseUrl,
113
+ timeout: config.timeout,
114
+ credentials: config.authMode === 'cookie' ? 'include' : undefined,
115
+ headers: ()=>{
116
+ const headers = _extends({}, config.headers, {
117
+ appid: config.appId
118
+ });
119
+ if (config.tenantId) {
120
+ headers['tenant-id'] = config.tenantId;
121
+ }
122
+ // In token mode, add Authorization header if we have a token
123
+ if (config.authMode !== 'cookie') {
124
+ const token = tokenManager.getAccessToken();
125
+ if (token) {
126
+ headers['Authorization'] = `Bearer ${token}`;
127
+ }
128
+ }
129
+ return headers;
130
+ }
131
+ });
132
+ }
133
+ /**
134
+ * Provide 23blocks services with simplified configuration.
135
+ *
136
+ * This is the recommended way to set up 23blocks in new Angular applications.
137
+ * It automatically handles token storage and authentication headers.
138
+ *
139
+ * @example Token mode (default)
140
+ * ```typescript
141
+ * // app.config.ts
142
+ * import { ApplicationConfig } from '@angular/core';
143
+ * import { provideBlocks23 } from '@23blocks/angular';
144
+ *
145
+ * export const appConfig: ApplicationConfig = {
146
+ * providers: [
147
+ * provideBlocks23({
148
+ * baseUrl: 'https://api.yourapp.com',
149
+ * appId: 'your-app-id',
150
+ * }),
151
+ * ],
152
+ * };
153
+ * ```
154
+ *
155
+ * @example Cookie mode (recommended for security)
156
+ * ```typescript
157
+ * export const appConfig: ApplicationConfig = {
158
+ * providers: [
159
+ * provideBlocks23({
160
+ * baseUrl: 'https://api.yourapp.com',
161
+ * appId: 'your-app-id',
162
+ * authMode: 'cookie',
163
+ * }),
164
+ * ],
165
+ * };
166
+ * ```
167
+ */ export function provideBlocks23(config) {
168
+ // Block config for all services
169
+ const blockConfig = {
170
+ appId: config.appId,
171
+ tenantId: config.tenantId
172
+ };
173
+ const providers = [
174
+ // Store config for injection
175
+ {
176
+ provide: SIMPLE_CONFIG,
177
+ useValue: config
178
+ },
179
+ // Token manager factory - creates singleton within the injector
180
+ {
181
+ provide: TOKEN_MANAGER,
182
+ useFactory: ()=>{
183
+ var _config_storage;
184
+ const storage = (_config_storage = config.storage) != null ? _config_storage : 'localStorage';
185
+ return createTokenManager(config.appId, storage, config.tenantId);
186
+ }
187
+ },
188
+ // Transport factory - depends on token manager
189
+ {
190
+ provide: TRANSPORT,
191
+ useFactory: (tokenManager)=>{
192
+ return createTransportWithAuth(config, tokenManager);
193
+ },
194
+ deps: [
195
+ TOKEN_MANAGER
196
+ ]
197
+ },
198
+ // Block configs
199
+ {
200
+ provide: AUTHENTICATION_CONFIG,
201
+ useValue: blockConfig
202
+ },
203
+ {
204
+ provide: SEARCH_CONFIG,
205
+ useValue: blockConfig
206
+ },
207
+ {
208
+ provide: PRODUCTS_CONFIG,
209
+ useValue: blockConfig
210
+ },
211
+ {
212
+ provide: CRM_CONFIG,
213
+ useValue: blockConfig
214
+ },
215
+ {
216
+ provide: CONTENT_CONFIG,
217
+ useValue: blockConfig
218
+ },
219
+ {
220
+ provide: GEOLOCATION_CONFIG,
221
+ useValue: blockConfig
222
+ },
223
+ {
224
+ provide: CONVERSATIONS_CONFIG,
225
+ useValue: blockConfig
226
+ },
227
+ {
228
+ provide: FILES_CONFIG,
229
+ useValue: blockConfig
230
+ },
231
+ {
232
+ provide: FORMS_CONFIG,
233
+ useValue: blockConfig
234
+ },
235
+ {
236
+ provide: ASSETS_CONFIG,
237
+ useValue: blockConfig
238
+ },
239
+ {
240
+ provide: CAMPAIGNS_CONFIG,
241
+ useValue: blockConfig
242
+ },
243
+ {
244
+ provide: COMPANY_CONFIG,
245
+ useValue: blockConfig
246
+ },
247
+ {
248
+ provide: REWARDS_CONFIG,
249
+ useValue: blockConfig
250
+ },
251
+ {
252
+ provide: SALES_CONFIG,
253
+ useValue: blockConfig
254
+ },
255
+ {
256
+ provide: WALLET_CONFIG,
257
+ useValue: blockConfig
258
+ },
259
+ {
260
+ provide: JARVIS_CONFIG,
261
+ useValue: blockConfig
262
+ },
263
+ {
264
+ provide: ONBOARDING_CONFIG,
265
+ useValue: blockConfig
266
+ },
267
+ {
268
+ provide: UNIVERSITY_CONFIG,
269
+ useValue: blockConfig
270
+ }
271
+ ];
272
+ return makeEnvironmentProviders(providers);
273
+ }
274
+ /**
275
+ * Get providers array for NgModule-based applications with simplified config.
276
+ *
277
+ * @example
278
+ * ```typescript
279
+ * // app.module.ts
280
+ * import { NgModule } from '@angular/core';
281
+ * import { getBlocks23Providers } from '@23blocks/angular';
282
+ *
283
+ * @NgModule({
284
+ * providers: [
285
+ * ...getBlocks23Providers({
286
+ * baseUrl: 'https://api.yourapp.com',
287
+ * appId: 'your-app-id',
288
+ * }),
289
+ * ],
290
+ * })
291
+ * export class AppModule {}
292
+ * ```
293
+ */ export function getBlocks23Providers(config) {
294
+ // Block config for all services
295
+ const blockConfig = {
296
+ appId: config.appId,
297
+ tenantId: config.tenantId
298
+ };
299
+ return [
300
+ // Store config for injection
301
+ {
302
+ provide: SIMPLE_CONFIG,
303
+ useValue: config
304
+ },
305
+ // Token manager factory - creates singleton within the injector
306
+ {
307
+ provide: TOKEN_MANAGER,
308
+ useFactory: ()=>{
309
+ var _config_storage;
310
+ const storage = (_config_storage = config.storage) != null ? _config_storage : 'localStorage';
311
+ return createTokenManager(config.appId, storage, config.tenantId);
312
+ }
313
+ },
314
+ // Transport factory - depends on token manager
315
+ {
316
+ provide: TRANSPORT,
317
+ useFactory: (tokenManager)=>{
318
+ return createTransportWithAuth(config, tokenManager);
319
+ },
320
+ deps: [
321
+ TOKEN_MANAGER
322
+ ]
323
+ },
324
+ // Block configs
325
+ {
326
+ provide: AUTHENTICATION_CONFIG,
327
+ useValue: blockConfig
328
+ },
329
+ {
330
+ provide: SEARCH_CONFIG,
331
+ useValue: blockConfig
332
+ },
333
+ {
334
+ provide: PRODUCTS_CONFIG,
335
+ useValue: blockConfig
336
+ },
337
+ {
338
+ provide: CRM_CONFIG,
339
+ useValue: blockConfig
340
+ },
341
+ {
342
+ provide: CONTENT_CONFIG,
343
+ useValue: blockConfig
344
+ },
345
+ {
346
+ provide: GEOLOCATION_CONFIG,
347
+ useValue: blockConfig
348
+ },
349
+ {
350
+ provide: CONVERSATIONS_CONFIG,
351
+ useValue: blockConfig
352
+ },
353
+ {
354
+ provide: FILES_CONFIG,
355
+ useValue: blockConfig
356
+ },
357
+ {
358
+ provide: FORMS_CONFIG,
359
+ useValue: blockConfig
360
+ },
361
+ {
362
+ provide: ASSETS_CONFIG,
363
+ useValue: blockConfig
364
+ },
365
+ {
366
+ provide: CAMPAIGNS_CONFIG,
367
+ useValue: blockConfig
368
+ },
369
+ {
370
+ provide: COMPANY_CONFIG,
371
+ useValue: blockConfig
372
+ },
373
+ {
374
+ provide: REWARDS_CONFIG,
375
+ useValue: blockConfig
376
+ },
377
+ {
378
+ provide: SALES_CONFIG,
379
+ useValue: blockConfig
380
+ },
381
+ {
382
+ provide: WALLET_CONFIG,
383
+ useValue: blockConfig
384
+ },
385
+ {
386
+ provide: JARVIS_CONFIG,
387
+ useValue: blockConfig
388
+ },
389
+ {
390
+ provide: ONBOARDING_CONFIG,
391
+ useValue: blockConfig
392
+ },
393
+ {
394
+ provide: UNIVERSITY_CONFIG,
395
+ useValue: blockConfig
396
+ }
397
+ ];
398
+ }
399
+
400
+ //# sourceMappingURL=simple-providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/simple-providers.ts"],"sourcesContent":["import type { Provider, EnvironmentProviders } from '@angular/core';\nimport { InjectionToken, makeEnvironmentProviders } from '@angular/core';\nimport { createHttpTransport } from '@23blocks/transport-http';\nimport type { Transport } from '@23blocks/contracts';\nimport {\n TRANSPORT,\n AUTHENTICATION_CONFIG,\n SEARCH_CONFIG,\n PRODUCTS_CONFIG,\n CRM_CONFIG,\n CONTENT_CONFIG,\n GEOLOCATION_CONFIG,\n CONVERSATIONS_CONFIG,\n FILES_CONFIG,\n FORMS_CONFIG,\n ASSETS_CONFIG,\n CAMPAIGNS_CONFIG,\n COMPANY_CONFIG,\n REWARDS_CONFIG,\n SALES_CONFIG,\n WALLET_CONFIG,\n JARVIS_CONFIG,\n ONBOARDING_CONFIG,\n UNIVERSITY_CONFIG,\n} from './tokens.js';\n\n/**\n * Authentication mode for the simplified API\n */\nexport type AuthMode = 'token' | 'cookie';\n\n/**\n * Storage type for token mode\n */\nexport type StorageType = 'localStorage' | 'sessionStorage' | 'memory';\n\n/**\n * Simplified configuration for providing 23blocks services\n */\nexport interface Simple23BlocksConfig {\n /**\n * Base URL for the 23blocks API\n * @example 'https://api.yourapp.com'\n */\n baseUrl: string;\n\n /**\n * Application ID\n */\n appId: string;\n\n /**\n * Tenant ID (optional, for multi-tenant setups)\n */\n tenantId?: string;\n\n /**\n * Authentication mode\n * - 'token' (default): SDK stores tokens in localStorage/sessionStorage/memory\n * - 'cookie': Backend manages auth via httpOnly cookies\n */\n authMode?: AuthMode;\n\n /**\n * Storage type for token mode\n * @default 'localStorage'\n */\n storage?: StorageType;\n\n /**\n * Additional headers to include with every request\n */\n headers?: Record<string, string>;\n\n /**\n * Request timeout in milliseconds\n * @default 30000\n */\n timeout?: number;\n}\n\n/**\n * Injection token for the token manager (internal use)\n */\nexport const TOKEN_MANAGER = new InjectionToken<TokenManagerService>('23blocks.token-manager');\n\n/**\n * Injection token for simple config\n */\nexport const SIMPLE_CONFIG = new InjectionToken<Simple23BlocksConfig>('23blocks.simple-config');\n\n/**\n * Token manager interface\n */\nexport interface TokenManagerService {\n getAccessToken(): string | null;\n getRefreshToken(): string | null;\n setTokens(accessToken: string, refreshToken?: string): void;\n clearTokens(): void;\n /**\n * Subscribe to storage changes from other tabs/windows.\n * Returns an unsubscribe function.\n */\n onStorageChange(callback: () => void): () => void;\n}\n\n/**\n * Generate storage key scoped to app and tenant\n */\nfunction getStorageKey(type: 'access' | 'refresh', appId: string, tenantId?: string): string {\n const scope = tenantId ? `${appId}_${tenantId}` : appId;\n return `23blocks_${scope}_${type}_token`;\n}\n\n/**\n * In-memory storage for SSR\n */\nclass MemoryStorage {\n private data = new Map<string, string>();\n getItem(key: string): string | null {\n return this.data.get(key) ?? null;\n }\n setItem(key: string, value: string): void {\n this.data.set(key, value);\n }\n removeItem(key: string): void {\n this.data.delete(key);\n }\n}\n\n/**\n * Create a token manager with scoped storage keys and cross-tab sync\n */\nfunction createTokenManager(\n appId: string,\n storageType: StorageType,\n tenantId?: string\n): TokenManagerService {\n const isBrowser = typeof window !== 'undefined' && typeof window.localStorage !== 'undefined';\n\n const accessTokenKey = getStorageKey('access', appId, tenantId);\n const refreshTokenKey = getStorageKey('refresh', appId, tenantId);\n\n let storage: Storage | MemoryStorage;\n if (!isBrowser) {\n storage = new MemoryStorage();\n } else {\n switch (storageType) {\n case 'sessionStorage':\n storage = window.sessionStorage;\n break;\n case 'memory':\n storage = new MemoryStorage();\n break;\n default:\n storage = window.localStorage;\n }\n }\n\n return {\n getAccessToken(): string | null {\n try {\n return storage.getItem(accessTokenKey);\n } catch {\n return null;\n }\n },\n getRefreshToken(): string | null {\n try {\n return storage.getItem(refreshTokenKey);\n } catch {\n return null;\n }\n },\n setTokens(accessToken: string, refreshToken?: string): void {\n try {\n storage.setItem(accessTokenKey, accessToken);\n if (refreshToken) {\n storage.setItem(refreshTokenKey, refreshToken);\n }\n } catch {\n console.warn('[23blocks] Unable to store tokens');\n }\n },\n clearTokens(): void {\n try {\n storage.removeItem(accessTokenKey);\n storage.removeItem(refreshTokenKey);\n } catch {\n // Silently fail\n }\n },\n onStorageChange(callback: () => void): () => void {\n // Only works in browser with localStorage/sessionStorage\n if (!isBrowser || storageType === 'memory') {\n // Return no-op unsubscribe for SSR/memory storage\n return () => {};\n }\n\n const handler = (event: StorageEvent) => {\n // Only trigger if our keys changed\n if (event.key === accessTokenKey || event.key === refreshTokenKey) {\n callback();\n }\n };\n\n window.addEventListener('storage', handler);\n\n // Return unsubscribe function\n return () => {\n window.removeEventListener('storage', handler);\n };\n },\n };\n}\n\n/**\n * Create transport with automatic token handling\n */\nfunction createTransportWithAuth(config: Simple23BlocksConfig, tokenManager: TokenManagerService): Transport {\n return createHttpTransport({\n baseUrl: config.baseUrl,\n timeout: config.timeout,\n credentials: config.authMode === 'cookie' ? 'include' : undefined,\n headers: () => {\n const headers: Record<string, string> = {\n ...config.headers,\n appid: config.appId,\n };\n\n if (config.tenantId) {\n headers['tenant-id'] = config.tenantId;\n }\n\n // In token mode, add Authorization header if we have a token\n if (config.authMode !== 'cookie') {\n const token = tokenManager.getAccessToken();\n if (token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n }\n\n return headers;\n },\n });\n}\n\n/**\n * Provide 23blocks services with simplified configuration.\n *\n * This is the recommended way to set up 23blocks in new Angular applications.\n * It automatically handles token storage and authentication headers.\n *\n * @example Token mode (default)\n * ```typescript\n * // app.config.ts\n * import { ApplicationConfig } from '@angular/core';\n * import { provideBlocks23 } from '@23blocks/angular';\n *\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideBlocks23({\n * baseUrl: 'https://api.yourapp.com',\n * appId: 'your-app-id',\n * }),\n * ],\n * };\n * ```\n *\n * @example Cookie mode (recommended for security)\n * ```typescript\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideBlocks23({\n * baseUrl: 'https://api.yourapp.com',\n * appId: 'your-app-id',\n * authMode: 'cookie',\n * }),\n * ],\n * };\n * ```\n */\nexport function provideBlocks23(config: Simple23BlocksConfig): EnvironmentProviders {\n // Block config for all services\n const blockConfig = { appId: config.appId, tenantId: config.tenantId };\n\n const providers: Provider[] = [\n // Store config for injection\n { provide: SIMPLE_CONFIG, useValue: config },\n\n // Token manager factory - creates singleton within the injector\n {\n provide: TOKEN_MANAGER,\n useFactory: () => {\n const storage = config.storage ?? 'localStorage';\n return createTokenManager(config.appId, storage, config.tenantId);\n },\n },\n\n // Transport factory - depends on token manager\n {\n provide: TRANSPORT,\n useFactory: (tokenManager: TokenManagerService) => {\n return createTransportWithAuth(config, tokenManager);\n },\n deps: [TOKEN_MANAGER],\n },\n\n // Block configs\n { provide: AUTHENTICATION_CONFIG, useValue: blockConfig },\n { provide: SEARCH_CONFIG, useValue: blockConfig },\n { provide: PRODUCTS_CONFIG, useValue: blockConfig },\n { provide: CRM_CONFIG, useValue: blockConfig },\n { provide: CONTENT_CONFIG, useValue: blockConfig },\n { provide: GEOLOCATION_CONFIG, useValue: blockConfig },\n { provide: CONVERSATIONS_CONFIG, useValue: blockConfig },\n { provide: FILES_CONFIG, useValue: blockConfig },\n { provide: FORMS_CONFIG, useValue: blockConfig },\n { provide: ASSETS_CONFIG, useValue: blockConfig },\n { provide: CAMPAIGNS_CONFIG, useValue: blockConfig },\n { provide: COMPANY_CONFIG, useValue: blockConfig },\n { provide: REWARDS_CONFIG, useValue: blockConfig },\n { provide: SALES_CONFIG, useValue: blockConfig },\n { provide: WALLET_CONFIG, useValue: blockConfig },\n { provide: JARVIS_CONFIG, useValue: blockConfig },\n { provide: ONBOARDING_CONFIG, useValue: blockConfig },\n { provide: UNIVERSITY_CONFIG, useValue: blockConfig },\n ];\n\n return makeEnvironmentProviders(providers);\n}\n\n/**\n * Get providers array for NgModule-based applications with simplified config.\n *\n * @example\n * ```typescript\n * // app.module.ts\n * import { NgModule } from '@angular/core';\n * import { getBlocks23Providers } from '@23blocks/angular';\n *\n * @NgModule({\n * providers: [\n * ...getBlocks23Providers({\n * baseUrl: 'https://api.yourapp.com',\n * appId: 'your-app-id',\n * }),\n * ],\n * })\n * export class AppModule {}\n * ```\n */\nexport function getBlocks23Providers(config: Simple23BlocksConfig): Provider[] {\n // Block config for all services\n const blockConfig = { appId: config.appId, tenantId: config.tenantId };\n\n return [\n // Store config for injection\n { provide: SIMPLE_CONFIG, useValue: config },\n\n // Token manager factory - creates singleton within the injector\n {\n provide: TOKEN_MANAGER,\n useFactory: () => {\n const storage = config.storage ?? 'localStorage';\n return createTokenManager(config.appId, storage, config.tenantId);\n },\n },\n\n // Transport factory - depends on token manager\n {\n provide: TRANSPORT,\n useFactory: (tokenManager: TokenManagerService) => {\n return createTransportWithAuth(config, tokenManager);\n },\n deps: [TOKEN_MANAGER],\n },\n\n // Block configs\n { provide: AUTHENTICATION_CONFIG, useValue: blockConfig },\n { provide: SEARCH_CONFIG, useValue: blockConfig },\n { provide: PRODUCTS_CONFIG, useValue: blockConfig },\n { provide: CRM_CONFIG, useValue: blockConfig },\n { provide: CONTENT_CONFIG, useValue: blockConfig },\n { provide: GEOLOCATION_CONFIG, useValue: blockConfig },\n { provide: CONVERSATIONS_CONFIG, useValue: blockConfig },\n { provide: FILES_CONFIG, useValue: blockConfig },\n { provide: FORMS_CONFIG, useValue: blockConfig },\n { provide: ASSETS_CONFIG, useValue: blockConfig },\n { provide: CAMPAIGNS_CONFIG, useValue: blockConfig },\n { provide: COMPANY_CONFIG, useValue: blockConfig },\n { provide: REWARDS_CONFIG, useValue: blockConfig },\n { provide: SALES_CONFIG, useValue: blockConfig },\n { provide: WALLET_CONFIG, useValue: blockConfig },\n { provide: JARVIS_CONFIG, useValue: blockConfig },\n { provide: ONBOARDING_CONFIG, useValue: blockConfig },\n { provide: UNIVERSITY_CONFIG, useValue: blockConfig },\n ];\n}\n"],"names":["InjectionToken","makeEnvironmentProviders","createHttpTransport","TRANSPORT","AUTHENTICATION_CONFIG","SEARCH_CONFIG","PRODUCTS_CONFIG","CRM_CONFIG","CONTENT_CONFIG","GEOLOCATION_CONFIG","CONVERSATIONS_CONFIG","FILES_CONFIG","FORMS_CONFIG","ASSETS_CONFIG","CAMPAIGNS_CONFIG","COMPANY_CONFIG","REWARDS_CONFIG","SALES_CONFIG","WALLET_CONFIG","JARVIS_CONFIG","ONBOARDING_CONFIG","UNIVERSITY_CONFIG","TOKEN_MANAGER","SIMPLE_CONFIG","getStorageKey","type","appId","tenantId","scope","MemoryStorage","getItem","key","data","get","setItem","value","set","removeItem","delete","Map","createTokenManager","storageType","isBrowser","window","localStorage","accessTokenKey","refreshTokenKey","storage","sessionStorage","getAccessToken","getRefreshToken","setTokens","accessToken","refreshToken","console","warn","clearTokens","onStorageChange","callback","handler","event","addEventListener","removeEventListener","createTransportWithAuth","config","tokenManager","baseUrl","timeout","credentials","authMode","undefined","headers","appid","token","provideBlocks23","blockConfig","providers","provide","useValue","useFactory","deps","getBlocks23Providers"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -8,5 +8,53 @@ import { InjectionToken } from '@angular/core';
8
8
  /**
9
9
  * Injection token for Search block configuration
10
10
  */ export const SEARCH_CONFIG = new InjectionToken('23blocks.search.config');
11
+ /**
12
+ * Injection token for Geolocation block configuration
13
+ */ export const GEOLOCATION_CONFIG = new InjectionToken('23blocks.geolocation.config');
14
+ /**
15
+ * Injection token for Content block configuration
16
+ */ export const CONTENT_CONFIG = new InjectionToken('23blocks.content.config');
17
+ /**
18
+ * Injection token for CRM block configuration
19
+ */ export const CRM_CONFIG = new InjectionToken('23blocks.crm.config');
20
+ /**
21
+ * Injection token for Products block configuration
22
+ */ export const PRODUCTS_CONFIG = new InjectionToken('23blocks.products.config');
23
+ /**
24
+ * Injection token for Conversations block configuration
25
+ */ export const CONVERSATIONS_CONFIG = new InjectionToken('23blocks.conversations.config');
26
+ /**
27
+ * Injection token for Files block configuration
28
+ */ export const FILES_CONFIG = new InjectionToken('23blocks.files.config');
29
+ /**
30
+ * Injection token for Assets block configuration
31
+ */ export const ASSETS_CONFIG = new InjectionToken('23blocks.assets.config');
32
+ /**
33
+ * Injection token for Forms block configuration
34
+ */ export const FORMS_CONFIG = new InjectionToken('23blocks.forms.config');
35
+ /**
36
+ * Injection token for Sales block configuration
37
+ */ export const SALES_CONFIG = new InjectionToken('23blocks.sales.config');
38
+ /**
39
+ * Injection token for Campaigns block configuration
40
+ */ export const CAMPAIGNS_CONFIG = new InjectionToken('23blocks.campaigns.config');
41
+ /**
42
+ * Injection token for Company block configuration
43
+ */ export const COMPANY_CONFIG = new InjectionToken('23blocks.company.config');
44
+ /**
45
+ * Injection token for Rewards block configuration
46
+ */ export const REWARDS_CONFIG = new InjectionToken('23blocks.rewards.config');
47
+ /**
48
+ * Injection token for Jarvis block configuration
49
+ */ export const JARVIS_CONFIG = new InjectionToken('23blocks.jarvis.config');
50
+ /**
51
+ * Injection token for Onboarding block configuration
52
+ */ export const ONBOARDING_CONFIG = new InjectionToken('23blocks.onboarding.config');
53
+ /**
54
+ * Injection token for University block configuration
55
+ */ export const UNIVERSITY_CONFIG = new InjectionToken('23blocks.university.config');
56
+ /**
57
+ * Injection token for Wallet block configuration
58
+ */ export const WALLET_CONFIG = new InjectionToken('23blocks.wallet.config');
11
59
 
12
60
  //# sourceMappingURL=tokens.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/lib/tokens.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';\n\n/**\n * Injection token for the Transport instance\n */\nexport const TRANSPORT = new InjectionToken<Transport>('23blocks.transport');\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"],"names":["InjectionToken","TRANSPORT","AUTHENTICATION_CONFIG","SEARCH_CONFIG"],"rangeMappings":";;;;;;;;;","mappings":"AAAA,SAASA,cAAc,QAAQ,gBAAgB;AAK/C;;CAEC,GACD,OAAO,MAAMC,YAAY,IAAID,eAA0B,sBAAsB;AAE7E;;CAEC,GACD,OAAO,MAAME,wBAAwB,IAAIF,eACvC,kCACA;AAEF;;CAEC,GACD,OAAO,MAAMG,gBAAgB,IAAIH,eAC/B,0BACA"}
1
+ {"version":3,"sources":["../../src/lib/tokens.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 * Injection token for the Transport instance\n */\nexport const TRANSPORT = new InjectionToken<Transport>('23blocks.transport');\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"],"names":["InjectionToken","TRANSPORT","AUTHENTICATION_CONFIG","SEARCH_CONFIG","GEOLOCATION_CONFIG","CONTENT_CONFIG","CRM_CONFIG","PRODUCTS_CONFIG","CONVERSATIONS_CONFIG","FILES_CONFIG","ASSETS_CONFIG","FORMS_CONFIG","SALES_CONFIG","CAMPAIGNS_CONFIG","COMPANY_CONFIG","REWARDS_CONFIG","JARVIS_CONFIG","ONBOARDING_CONFIG","UNIVERSITY_CONFIG","WALLET_CONFIG"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,cAAc,QAAQ,gBAAgB;AAqB/C;;CAEC,GACD,OAAO,MAAMC,YAAY,IAAID,eAA0B,sBAAsB;AAE7E;;CAEC,GACD,OAAO,MAAME,wBAAwB,IAAIF,eACvC,kCACA;AAEF;;CAEC,GACD,OAAO,MAAMG,gBAAgB,IAAIH,eAC/B,0BACA;AAEF;;CAEC,GACD,OAAO,MAAMI,qBAAqB,IAAIJ,eACpC,+BACA;AAEF;;CAEC,GACD,OAAO,MAAMK,iBAAiB,IAAIL,eAChC,2BACA;AAEF;;CAEC,GACD,OAAO,MAAMM,aAAa,IAAIN,eAC5B,uBACA;AAEF;;CAEC,GACD,OAAO,MAAMO,kBAAkB,IAAIP,eACjC,4BACA;AAEF;;CAEC,GACD,OAAO,MAAMQ,uBAAuB,IAAIR,eACtC,iCACA;AAEF;;CAEC,GACD,OAAO,MAAMS,eAAe,IAAIT,eAC9B,yBACA;AAEF;;CAEC,GACD,OAAO,MAAMU,gBAAgB,IAAIV,eAC/B,0BACA;AAEF;;CAEC,GACD,OAAO,MAAMW,eAAe,IAAIX,eAC9B,yBACA;AAEF;;CAEC,GACD,OAAO,MAAMY,eAAe,IAAIZ,eAC9B,yBACA;AAEF;;CAEC,GACD,OAAO,MAAMa,mBAAmB,IAAIb,eAClC,6BACA;AAEF;;CAEC,GACD,OAAO,MAAMc,iBAAiB,IAAId,eAChC,2BACA;AAEF;;CAEC,GACD,OAAO,MAAMe,iBAAiB,IAAIf,eAChC,2BACA;AAEF;;CAEC,GACD,OAAO,MAAMgB,gBAAgB,IAAIhB,eAC/B,0BACA;AAEF;;CAEC,GACD,OAAO,MAAMiB,oBAAoB,IAAIjB,eACnC,8BACA;AAEF;;CAEC,GACD,OAAO,MAAMkB,oBAAoB,IAAIlB,eACnC,8BACA;AAEF;;CAEC,GACD,OAAO,MAAMmB,gBAAgB,IAAInB,eAC/B,0BACA"}
@@ -0,0 +1,3 @@
1
+ export { UniversityService } from './university.service';
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/university/index.ts"],"sourcesContent":["export { UniversityService } from './university.service';\n"],"names":["UniversityService"],"rangeMappings":"","mappings":"AAAA,SAASA,iBAAiB,QAAQ,uBAAuB"}