@23blocks/angular 1.1.1 → 1.1.3

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 (150) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.esm.js +4230 -0
  3. package/dist/src/index.d.ts +2 -0
  4. package/dist/src/index.d.ts.map +1 -0
  5. package/dist/src/lib/assets/assets.service.d.ts +58 -0
  6. package/dist/src/lib/assets/assets.service.d.ts.map +1 -0
  7. package/dist/{lib/assets/index.js → src/lib/assets/index.d.ts} +1 -2
  8. package/dist/src/lib/assets/index.d.ts.map +1 -0
  9. package/dist/src/lib/authentication/authentication.service.d.ts +105 -0
  10. package/dist/src/lib/authentication/authentication.service.d.ts.map +1 -0
  11. package/dist/{lib/authentication/index.js → src/lib/authentication/index.d.ts} +1 -2
  12. package/dist/src/lib/authentication/index.d.ts.map +1 -0
  13. package/dist/src/lib/campaigns/campaigns.service.d.ts +66 -0
  14. package/dist/src/lib/campaigns/campaigns.service.d.ts.map +1 -0
  15. package/dist/{lib/campaigns/index.js → src/lib/campaigns/index.d.ts} +1 -2
  16. package/dist/src/lib/campaigns/index.d.ts.map +1 -0
  17. package/dist/src/lib/company/company.service.d.ts +65 -0
  18. package/dist/src/lib/company/company.service.d.ts.map +1 -0
  19. package/dist/{lib/company/index.js → src/lib/company/index.d.ts} +1 -2
  20. package/dist/src/lib/company/index.d.ts.map +1 -0
  21. package/dist/src/lib/content/content.service.d.ts +67 -0
  22. package/dist/src/lib/content/content.service.d.ts.map +1 -0
  23. package/dist/{lib/content/index.js → src/lib/content/index.d.ts} +1 -2
  24. package/dist/src/lib/content/index.d.ts.map +1 -0
  25. package/dist/src/lib/conversations/conversations.service.d.ts +74 -0
  26. package/dist/src/lib/conversations/conversations.service.d.ts.map +1 -0
  27. package/dist/{lib/conversations/index.js → src/lib/conversations/index.d.ts} +1 -2
  28. package/dist/src/lib/conversations/index.d.ts.map +1 -0
  29. package/dist/src/lib/crm/crm.service.d.ts +84 -0
  30. package/dist/src/lib/crm/crm.service.d.ts.map +1 -0
  31. package/dist/{lib/crm/index.js → src/lib/crm/index.d.ts} +1 -2
  32. package/dist/src/lib/crm/index.d.ts.map +1 -0
  33. package/dist/src/lib/files/files.service.d.ts +62 -0
  34. package/dist/src/lib/files/files.service.d.ts.map +1 -0
  35. package/dist/{lib/files/index.js → src/lib/files/index.d.ts} +1 -2
  36. package/dist/src/lib/files/index.d.ts.map +1 -0
  37. package/dist/src/lib/forms/forms.service.d.ts +60 -0
  38. package/dist/src/lib/forms/forms.service.d.ts.map +1 -0
  39. package/dist/src/lib/forms/index.d.ts +2 -0
  40. package/dist/src/lib/forms/index.d.ts.map +1 -0
  41. package/dist/src/lib/geolocation/geolocation.service.d.ts +93 -0
  42. package/dist/src/lib/geolocation/geolocation.service.d.ts.map +1 -0
  43. package/dist/{lib/geolocation/index.js → src/lib/geolocation/index.d.ts} +1 -2
  44. package/dist/src/lib/geolocation/index.d.ts.map +1 -0
  45. package/dist/src/lib/index.d.ts +22 -0
  46. package/dist/src/lib/index.d.ts.map +1 -0
  47. package/dist/{lib/jarvis/index.js → src/lib/jarvis/index.d.ts} +1 -2
  48. package/dist/src/lib/jarvis/index.d.ts.map +1 -0
  49. package/dist/src/lib/jarvis/jarvis.service.d.ts +69 -0
  50. package/dist/src/lib/jarvis/jarvis.service.d.ts.map +1 -0
  51. package/dist/{lib/onboarding/index.js → src/lib/onboarding/index.d.ts} +1 -2
  52. package/dist/src/lib/onboarding/index.d.ts.map +1 -0
  53. package/dist/src/lib/onboarding/onboarding.service.d.ts +68 -0
  54. package/dist/src/lib/onboarding/onboarding.service.d.ts.map +1 -0
  55. package/dist/{lib/products/index.js → src/lib/products/index.d.ts} +1 -2
  56. package/dist/src/lib/products/index.d.ts.map +1 -0
  57. package/dist/src/lib/products/products.service.d.ts +101 -0
  58. package/dist/src/lib/products/products.service.d.ts.map +1 -0
  59. package/dist/src/lib/providers.d.ts +97 -0
  60. package/dist/src/lib/providers.d.ts.map +1 -0
  61. package/dist/{lib/rewards/index.js → src/lib/rewards/index.d.ts} +1 -2
  62. package/dist/src/lib/rewards/index.d.ts.map +1 -0
  63. package/dist/src/lib/rewards/rewards.service.d.ts +62 -0
  64. package/dist/src/lib/rewards/rewards.service.d.ts.map +1 -0
  65. package/dist/{lib/sales/index.js → src/lib/sales/index.d.ts} +1 -2
  66. package/dist/src/lib/sales/index.d.ts.map +1 -0
  67. package/dist/src/lib/sales/sales.service.d.ts +62 -0
  68. package/dist/src/lib/sales/sales.service.d.ts.map +1 -0
  69. package/dist/{lib/search/index.js → src/lib/search/index.d.ts} +1 -2
  70. package/dist/src/lib/search/index.d.ts.map +1 -0
  71. package/dist/src/lib/search/search.service.d.ts +80 -0
  72. package/dist/src/lib/search/search.service.d.ts.map +1 -0
  73. package/dist/src/lib/simple-providers.d.ts +202 -0
  74. package/dist/src/lib/simple-providers.d.ts.map +1 -0
  75. package/dist/src/lib/tokens.d.ts +114 -0
  76. package/dist/src/lib/tokens.d.ts.map +1 -0
  77. package/dist/{lib/university/index.js → src/lib/university/index.d.ts} +1 -2
  78. package/dist/src/lib/university/index.d.ts.map +1 -0
  79. package/dist/src/lib/university/university.service.d.ts +75 -0
  80. package/dist/src/lib/university/university.service.d.ts.map +1 -0
  81. package/dist/{lib/wallet/index.js → src/lib/wallet/index.d.ts} +1 -2
  82. package/dist/src/lib/wallet/index.d.ts.map +1 -0
  83. package/dist/src/lib/wallet/wallet.service.d.ts +60 -0
  84. package/dist/src/lib/wallet/wallet.service.d.ts.map +1 -0
  85. package/package.json +10 -8
  86. package/dist/index.js +0 -3
  87. package/dist/index.js.map +0 -1
  88. package/dist/lib/assets/assets.service.js +0 -123
  89. package/dist/lib/assets/assets.service.js.map +0 -1
  90. package/dist/lib/assets/index.js.map +0 -1
  91. package/dist/lib/authentication/authentication.service.js +0 -209
  92. package/dist/lib/authentication/authentication.service.js.map +0 -1
  93. package/dist/lib/authentication/index.js.map +0 -1
  94. package/dist/lib/campaigns/campaigns.service.js +0 -150
  95. package/dist/lib/campaigns/campaigns.service.js.map +0 -1
  96. package/dist/lib/campaigns/index.js.map +0 -1
  97. package/dist/lib/company/company.service.js +0 -150
  98. package/dist/lib/company/company.service.js.map +0 -1
  99. package/dist/lib/company/index.js.map +0 -1
  100. package/dist/lib/content/content.service.js +0 -153
  101. package/dist/lib/content/content.service.js.map +0 -1
  102. package/dist/lib/content/index.js.map +0 -1
  103. package/dist/lib/conversations/conversations.service.js +0 -177
  104. package/dist/lib/conversations/conversations.service.js.map +0 -1
  105. package/dist/lib/conversations/index.js.map +0 -1
  106. package/dist/lib/crm/crm.service.js +0 -210
  107. package/dist/lib/crm/crm.service.js.map +0 -1
  108. package/dist/lib/crm/index.js.map +0 -1
  109. package/dist/lib/files/files.service.js +0 -120
  110. package/dist/lib/files/files.service.js.map +0 -1
  111. package/dist/lib/files/index.js.map +0 -1
  112. package/dist/lib/forms/forms.service.js +0 -132
  113. package/dist/lib/forms/forms.service.js.map +0 -1
  114. package/dist/lib/forms/index.js +0 -3
  115. package/dist/lib/forms/index.js.map +0 -1
  116. package/dist/lib/geolocation/geolocation.service.js +0 -240
  117. package/dist/lib/geolocation/geolocation.service.js.map +0 -1
  118. package/dist/lib/geolocation/index.js.map +0 -1
  119. package/dist/lib/index.js +0 -36
  120. package/dist/lib/index.js.map +0 -1
  121. package/dist/lib/jarvis/index.js.map +0 -1
  122. package/dist/lib/jarvis/jarvis.service.js +0 -162
  123. package/dist/lib/jarvis/jarvis.service.js.map +0 -1
  124. package/dist/lib/onboarding/index.js.map +0 -1
  125. package/dist/lib/onboarding/onboarding.service.js +0 -132
  126. package/dist/lib/onboarding/onboarding.service.js.map +0 -1
  127. package/dist/lib/products/index.js.map +0 -1
  128. package/dist/lib/products/products.service.js +0 -255
  129. package/dist/lib/products/products.service.js.map +0 -1
  130. package/dist/lib/providers.js +0 -286
  131. package/dist/lib/providers.js.map +0 -1
  132. package/dist/lib/rewards/index.js.map +0 -1
  133. package/dist/lib/rewards/rewards.service.js +0 -138
  134. package/dist/lib/rewards/rewards.service.js.map +0 -1
  135. package/dist/lib/sales/index.js.map +0 -1
  136. package/dist/lib/sales/sales.service.js +0 -138
  137. package/dist/lib/sales/sales.service.js.map +0 -1
  138. package/dist/lib/search/index.js.map +0 -1
  139. package/dist/lib/search/search.service.js +0 -106
  140. package/dist/lib/search/search.service.js.map +0 -1
  141. package/dist/lib/simple-providers.js +0 -498
  142. package/dist/lib/simple-providers.js.map +0 -1
  143. package/dist/lib/tokens.js +0 -85
  144. package/dist/lib/tokens.js.map +0 -1
  145. package/dist/lib/university/index.js.map +0 -1
  146. package/dist/lib/university/university.service.js +0 -174
  147. package/dist/lib/university/university.service.js.map +0 -1
  148. package/dist/lib/wallet/index.js.map +0 -1
  149. package/dist/lib/wallet/wallet.service.js +0 -111
  150. package/dist/lib/wallet/wallet.service.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/search/index.ts"],"sourcesContent":["export { SearchService } from './search.service.js';\n"],"names":["SearchService"],"rangeMappings":"","mappings":"AAAA,SAASA,aAAa,QAAQ,sBAAsB"}
@@ -1,106 +0,0 @@
1
- import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
2
- import { _ as _ts_metadata } from "@swc/helpers/_/_ts_metadata";
3
- import { _ as _ts_param } from "@swc/helpers/_/_ts_param";
4
- import { Injectable, Inject, Optional } from '@angular/core';
5
- import { from } from 'rxjs';
6
- import { createSearchBlock } from '@23blocks/block-search';
7
- import { TRANSPORT, SEARCH_TRANSPORT, SEARCH_CONFIG } from '../tokens.js';
8
- export class SearchService {
9
- /**
10
- * Ensure the service is configured, throw helpful error if not
11
- */ ensureConfigured() {
12
- if (!this.block) {
13
- throw new Error('[23blocks] SearchService is not configured. ' + "Add 'urls.search' to your provideBlocks23() configuration.");
14
- }
15
- return this.block;
16
- }
17
- // ─────────────────────────────────────────────────────────────────────────────
18
- // Search Operations
19
- // ─────────────────────────────────────────────────────────────────────────────
20
- /**
21
- * Perform a search query
22
- */ search(request) {
23
- return from(this.ensureConfigured().search.search(request));
24
- }
25
- /**
26
- * Get search suggestions for autocomplete
27
- */ suggest(query, limit) {
28
- return from(this.ensureConfigured().search.suggest(query, limit));
29
- }
30
- /**
31
- * Get available entity types for filtering
32
- */ getEntityTypes() {
33
- return from(this.ensureConfigured().search.entityTypes());
34
- }
35
- // ─────────────────────────────────────────────────────────────────────────────
36
- // Search History
37
- // ─────────────────────────────────────────────────────────────────────────────
38
- /**
39
- * Get recent search queries
40
- */ getLastQueries(limit) {
41
- return from(this.ensureConfigured().history.getLastQueries(limit));
42
- }
43
- /**
44
- * Get the full history of search queries
45
- */ getQueryHistory(params) {
46
- return from(this.ensureConfigured().history.getHistory(params));
47
- }
48
- /**
49
- * Clear search history
50
- */ clearHistory() {
51
- return from(this.ensureConfigured().history.clear());
52
- }
53
- // ─────────────────────────────────────────────────────────────────────────────
54
- // Favorites
55
- // ─────────────────────────────────────────────────────────────────────────────
56
- /**
57
- * List user's favorite entities
58
- */ listFavorites() {
59
- return from(this.ensureConfigured().favorites.list());
60
- }
61
- /**
62
- * Add an entity to favorites
63
- */ addFavorite(request) {
64
- return from(this.ensureConfigured().favorites.add(request));
65
- }
66
- /**
67
- * Remove an entity from favorites
68
- */ removeFavorite(id) {
69
- return from(this.ensureConfigured().favorites.remove(id));
70
- }
71
- /**
72
- * Check if an entity is favorited
73
- */ isFavorite(entityUniqueId) {
74
- return from(this.ensureConfigured().favorites.isFavorite(entityUniqueId));
75
- }
76
- // ─────────────────────────────────────────────────────────────────────────────
77
- // Direct Block Access (for advanced usage)
78
- // ─────────────────────────────────────────────────────────────────────────────
79
- /**
80
- * Access the underlying block for advanced operations
81
- */ get rawBlock() {
82
- return this.ensureConfigured();
83
- }
84
- constructor(serviceTransport, legacyTransport, config){
85
- const transport = serviceTransport != null ? serviceTransport : legacyTransport;
86
- this.block = transport ? createSearchBlock(transport, config) : null;
87
- }
88
- }
89
- SearchService = _ts_decorate([
90
- Injectable({
91
- providedIn: 'root'
92
- }),
93
- _ts_param(0, Optional()),
94
- _ts_param(0, Inject(SEARCH_TRANSPORT)),
95
- _ts_param(1, Optional()),
96
- _ts_param(1, Inject(TRANSPORT)),
97
- _ts_param(2, Inject(SEARCH_CONFIG)),
98
- _ts_metadata("design:type", Function),
99
- _ts_metadata("design:paramtypes", [
100
- Object,
101
- Object,
102
- typeof SearchBlockConfig === "undefined" ? Object : SearchBlockConfig
103
- ])
104
- ], SearchService);
105
-
106
- //# sourceMappingURL=search.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/lib/search/search.service.ts"],"sourcesContent":["import { Injectable, Inject, Optional } from '@angular/core';\nimport { Observable, from } from 'rxjs';\nimport type { Transport } 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} from '@23blocks/block-search';\nimport { TRANSPORT, SEARCH_TRANSPORT, SEARCH_CONFIG } from '../tokens.js';\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 // Direct Block Access (for advanced usage)\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Access the underlying block for advanced operations\n */\n get rawBlock(): SearchBlock {\n return this.ensureConfigured();\n }\n}\n"],"names":["Injectable","Inject","Optional","from","createSearchBlock","TRANSPORT","SEARCH_TRANSPORT","SEARCH_CONFIG","SearchService","ensureConfigured","block","Error","search","request","suggest","query","limit","getEntityTypes","entityTypes","getLastQueries","history","getQueryHistory","params","getHistory","clearHistory","clear","listFavorites","favorites","list","addFavorite","add","removeFavorite","id","remove","isFavorite","entityUniqueId","rawBlock","constructor","serviceTransport","legacyTransport","config","transport","providedIn"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;AAAA,SAASA,UAAU,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,gBAAgB;AAC7D,SAAqBC,IAAI,QAAQ,OAAO;AAExC,SACEC,iBAAiB,QAWZ,yBAAyB;AAChC,SAASC,SAAS,EAAEC,gBAAgB,EAAEC,aAAa,QAAQ,eAAe;AAwB1E,OAAO,MAAMC;IAYX;;GAEC,GACD,AAAQC,mBAAgC;QACtC,IAAI,CAAC,IAAI,CAACC,KAAK,EAAE;YACf,MAAM,IAAIC,MACR,iDACA;QAEJ;QACA,OAAO,IAAI,CAACD,KAAK;IACnB;IAEA,gFAAgF;IAChF,oBAAoB;IACpB,gFAAgF;IAEhF;;GAEC,GACDE,OAAOC,OAAsB,EAA8B;QACzD,OAAOV,KAAK,IAAI,CAACM,gBAAgB,GAAGG,MAAM,CAACA,MAAM,CAACC;IACpD;IAEA;;GAEC,GACDC,QAAQC,KAAa,EAAEC,KAAc,EAA8B;QACjE,OAAOb,KAAK,IAAI,CAACM,gBAAgB,GAAGG,MAAM,CAACE,OAAO,CAACC,OAAOC;IAC5D;IAEA;;GAEC,GACDC,iBAA2C;QACzC,OAAOd,KAAK,IAAI,CAACM,gBAAgB,GAAGG,MAAM,CAACM,WAAW;IACxD;IAEA,gFAAgF;IAChF,iBAAiB;IACjB,gFAAgF;IAEhF;;GAEC,GACDC,eAAeH,KAAc,EAA2B;QACtD,OAAOb,KAAK,IAAI,CAACM,gBAAgB,GAAGW,OAAO,CAACD,cAAc,CAACH;IAC7D;IAEA;;GAEC,GACDK,gBAAgBC,MAA4C,EAA6B;QACvF,OAAOnB,KAAK,IAAI,CAACM,gBAAgB,GAAGW,OAAO,CAACG,UAAU,CAACD;IACzD;IAEA;;GAEC,GACDE,eAAiC;QAC/B,OAAOrB,KAAK,IAAI,CAACM,gBAAgB,GAAGW,OAAO,CAACK,KAAK;IACnD;IAEA,gFAAgF;IAChF,YAAY;IACZ,gFAAgF;IAEhF;;GAEC,GACDC,gBAA8C;QAC5C,OAAOvB,KAAK,IAAI,CAACM,gBAAgB,GAAGkB,SAAS,CAACC,IAAI;IACpD;IAEA;;GAEC,GACDC,YAAYhB,OAA2B,EAA8B;QACnE,OAAOV,KAAK,IAAI,CAACM,gBAAgB,GAAGkB,SAAS,CAACG,GAAG,CAACjB;IACpD;IAEA;;GAEC,GACDkB,eAAeC,EAAU,EAAoB;QAC3C,OAAO7B,KAAK,IAAI,CAACM,gBAAgB,GAAGkB,SAAS,CAACM,MAAM,CAACD;IACvD;IAEA;;GAEC,GACDE,WAAWC,cAAsB,EAAuB;QACtD,OAAOhC,KAAK,IAAI,CAACM,gBAAgB,GAAGkB,SAAS,CAACO,UAAU,CAACC;IAC3D;IAEA,gFAAgF;IAChF,2CAA2C;IAC3C,gFAAgF;IAEhF;;GAEC,GACD,IAAIC,WAAwB;QAC1B,OAAO,IAAI,CAAC3B,gBAAgB;IAC9B;IAjHA4B,YACE,AAAsCC,gBAAkC,EACxE,AAA+BC,eAAiC,EAChE,AAAuBC,MAAyB,CAChD;QACA,MAAMC,YAAYH,2BAAAA,mBAAoBC;QACtC,IAAI,CAAC7B,KAAK,GAAG+B,YAAYrC,kBAAkBqC,WAAWD,UAAU;IAClE;AA2GF;AArHahC;IADZR,WAAW;QAAE0C,YAAY;IAAO;IAK5BxC,aAAAA;IAAYD,aAAAA,OAAOK;IACnBJ,aAAAA;IAAYD,aAAAA,OAAOI;IACnBJ,aAAAA,OAAOM;;;;;eAAuB,6CAAA;;GANtBC"}
@@ -1,498 +0,0 @@
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, // Per-service transport tokens
5
- AUTHENTICATION_TRANSPORT, SEARCH_TRANSPORT, PRODUCTS_TRANSPORT, CRM_TRANSPORT, CONTENT_TRANSPORT, GEOLOCATION_TRANSPORT, CONVERSATIONS_TRANSPORT, FILES_TRANSPORT, FORMS_TRANSPORT, ASSETS_TRANSPORT, CAMPAIGNS_TRANSPORT, COMPANY_TRANSPORT, REWARDS_TRANSPORT, SALES_TRANSPORT, WALLET_TRANSPORT, JARVIS_TRANSPORT, ONBOARDING_TRANSPORT, UNIVERSITY_TRANSPORT, // Config tokens
6
- 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';
7
- /**
8
- * Injection token for the token manager (internal use)
9
- */ export const TOKEN_MANAGER = new InjectionToken('23blocks.token-manager');
10
- /**
11
- * Injection token for provider config
12
- */ export const PROVIDER_CONFIG = new InjectionToken('23blocks.provider-config');
13
- /** @deprecated Use PROVIDER_CONFIG instead */ export const SIMPLE_CONFIG = PROVIDER_CONFIG;
14
- /**
15
- * Generate storage key scoped to app and tenant
16
- */ function getStorageKey(type, appId, tenantId) {
17
- const scope = tenantId ? `${appId}_${tenantId}` : appId;
18
- return `23blocks_${scope}_${type}_token`;
19
- }
20
- /**
21
- * In-memory storage for SSR
22
- */ let MemoryStorage = class MemoryStorage {
23
- getItem(key) {
24
- var _this_data_get;
25
- return (_this_data_get = this.data.get(key)) != null ? _this_data_get : null;
26
- }
27
- setItem(key, value) {
28
- this.data.set(key, value);
29
- }
30
- removeItem(key) {
31
- this.data.delete(key);
32
- }
33
- constructor(){
34
- this.data = new Map();
35
- }
36
- };
37
- /**
38
- * Create a token manager with scoped storage keys and cross-tab sync
39
- */ function createTokenManager(appId, storageType, tenantId) {
40
- const isBrowser = typeof window !== 'undefined' && typeof window.localStorage !== 'undefined';
41
- const accessTokenKey = getStorageKey('access', appId, tenantId);
42
- const refreshTokenKey = getStorageKey('refresh', appId, tenantId);
43
- let storage;
44
- if (!isBrowser) {
45
- storage = new MemoryStorage();
46
- } else {
47
- switch(storageType){
48
- case 'sessionStorage':
49
- storage = window.sessionStorage;
50
- break;
51
- case 'memory':
52
- storage = new MemoryStorage();
53
- break;
54
- default:
55
- storage = window.localStorage;
56
- }
57
- }
58
- return {
59
- getAccessToken () {
60
- try {
61
- return storage.getItem(accessTokenKey);
62
- } catch (e) {
63
- return null;
64
- }
65
- },
66
- getRefreshToken () {
67
- try {
68
- return storage.getItem(refreshTokenKey);
69
- } catch (e) {
70
- return null;
71
- }
72
- },
73
- setTokens (accessToken, refreshToken) {
74
- try {
75
- storage.setItem(accessTokenKey, accessToken);
76
- if (refreshToken) {
77
- storage.setItem(refreshTokenKey, refreshToken);
78
- }
79
- } catch (e) {
80
- console.warn('[23blocks] Unable to store tokens');
81
- }
82
- },
83
- clearTokens () {
84
- try {
85
- storage.removeItem(accessTokenKey);
86
- storage.removeItem(refreshTokenKey);
87
- } catch (e) {
88
- // Silently fail
89
- }
90
- },
91
- onStorageChange (callback) {
92
- // Only works in browser with localStorage/sessionStorage
93
- if (!isBrowser || storageType === 'memory') {
94
- // Return no-op unsubscribe for SSR/memory storage
95
- return ()=>{};
96
- }
97
- const handler = (event)=>{
98
- // Only trigger if our keys changed
99
- if (event.key === accessTokenKey || event.key === refreshTokenKey) {
100
- callback();
101
- }
102
- };
103
- window.addEventListener('storage', handler);
104
- // Return unsubscribe function
105
- return ()=>{
106
- window.removeEventListener('storage', handler);
107
- };
108
- }
109
- };
110
- }
111
- /**
112
- * Create transport with automatic token handling for a specific URL
113
- */ function createTransportWithAuth(baseUrl, config, tokenManager) {
114
- return createHttpTransport({
115
- baseUrl,
116
- timeout: config.timeout,
117
- credentials: config.authMode === 'cookie' ? 'include' : undefined,
118
- headers: ()=>{
119
- const headers = _extends({}, config.headers, {
120
- appid: config.appId
121
- });
122
- if (config.tenantId) {
123
- headers['tenant-id'] = config.tenantId;
124
- }
125
- // In token mode, add Authorization header if we have a token
126
- if (config.authMode !== 'cookie') {
127
- const token = tokenManager.getAccessToken();
128
- if (token) {
129
- headers['Authorization'] = `Bearer ${token}`;
130
- }
131
- }
132
- return headers;
133
- }
134
- });
135
- }
136
- /**
137
- * Provide 23blocks services with simplified configuration.
138
- *
139
- * This is the recommended way to set up 23blocks in new Angular applications.
140
- * It automatically handles token storage and authentication headers.
141
- *
142
- * Services are only available if their URL is configured. Accessing a service
143
- * without a configured URL will throw an error.
144
- *
145
- * @example Basic usage with multiple services
146
- * ```typescript
147
- * // app.config.ts
148
- * import { ApplicationConfig } from '@angular/core';
149
- * import { provideBlocks23 } from '@23blocks/angular';
150
- *
151
- * export const appConfig: ApplicationConfig = {
152
- * providers: [
153
- * provideBlocks23({
154
- * appId: 'your-app-id',
155
- * urls: {
156
- * authentication: 'https://gateway.23blocks.com',
157
- * crm: 'https://crm.23blocks.com',
158
- * products: 'https://products.23blocks.com',
159
- * },
160
- * }),
161
- * ],
162
- * };
163
- * ```
164
- *
165
- * @example Cookie mode (recommended for security)
166
- * ```typescript
167
- * export const appConfig: ApplicationConfig = {
168
- * providers: [
169
- * provideBlocks23({
170
- * appId: 'your-app-id',
171
- * authMode: 'cookie',
172
- * urls: {
173
- * authentication: 'https://gateway.23blocks.com',
174
- * crm: 'https://crm.23blocks.com',
175
- * },
176
- * }),
177
- * ],
178
- * };
179
- * ```
180
- */ export function provideBlocks23(config) {
181
- // Block config for all services
182
- const blockConfig = {
183
- appId: config.appId,
184
- tenantId: config.tenantId
185
- };
186
- // Helper to create transport provider for a service URL
187
- const createTransportProvider = (token, url)=>({
188
- provide: token,
189
- useFactory: (tokenManager)=>{
190
- if (!url) return null;
191
- return createTransportWithAuth(url, config, tokenManager);
192
- },
193
- deps: [
194
- TOKEN_MANAGER
195
- ]
196
- });
197
- const providers = [
198
- // Store config for injection
199
- {
200
- provide: PROVIDER_CONFIG,
201
- useValue: config
202
- },
203
- // Token manager factory - creates singleton within the injector
204
- {
205
- provide: TOKEN_MANAGER,
206
- useFactory: ()=>{
207
- var _config_storage;
208
- const storage = (_config_storage = config.storage) != null ? _config_storage : 'localStorage';
209
- return createTokenManager(config.appId, storage, config.tenantId);
210
- }
211
- },
212
- // Per-service transport factories (null if URL not configured)
213
- createTransportProvider(AUTHENTICATION_TRANSPORT, config.urls.authentication),
214
- createTransportProvider(SEARCH_TRANSPORT, config.urls.search),
215
- createTransportProvider(PRODUCTS_TRANSPORT, config.urls.products),
216
- createTransportProvider(CRM_TRANSPORT, config.urls.crm),
217
- createTransportProvider(CONTENT_TRANSPORT, config.urls.content),
218
- createTransportProvider(GEOLOCATION_TRANSPORT, config.urls.geolocation),
219
- createTransportProvider(CONVERSATIONS_TRANSPORT, config.urls.conversations),
220
- createTransportProvider(FILES_TRANSPORT, config.urls.files),
221
- createTransportProvider(FORMS_TRANSPORT, config.urls.forms),
222
- createTransportProvider(ASSETS_TRANSPORT, config.urls.assets),
223
- createTransportProvider(CAMPAIGNS_TRANSPORT, config.urls.campaigns),
224
- createTransportProvider(COMPANY_TRANSPORT, config.urls.company),
225
- createTransportProvider(REWARDS_TRANSPORT, config.urls.rewards),
226
- createTransportProvider(SALES_TRANSPORT, config.urls.sales),
227
- createTransportProvider(WALLET_TRANSPORT, config.urls.wallet),
228
- createTransportProvider(JARVIS_TRANSPORT, config.urls.jarvis),
229
- createTransportProvider(ONBOARDING_TRANSPORT, config.urls.onboarding),
230
- createTransportProvider(UNIVERSITY_TRANSPORT, config.urls.university),
231
- // Backward compatibility: provide TRANSPORT token using auth URL if available
232
- // (for advanced API users who still inject TRANSPORT directly)
233
- {
234
- provide: TRANSPORT,
235
- useFactory: (tokenManager)=>{
236
- // Use auth URL if available, otherwise create a dummy transport that throws
237
- const url = config.urls.authentication;
238
- if (url) {
239
- return createTransportWithAuth(url, config, tokenManager);
240
- }
241
- // Return a transport that throws helpful errors
242
- return {
243
- request: ()=>{
244
- throw new Error('[23blocks] TRANSPORT is not configured. ' + 'Use per-service transport tokens or configure urls.authentication.');
245
- }
246
- };
247
- },
248
- deps: [
249
- TOKEN_MANAGER
250
- ]
251
- },
252
- // Block configs
253
- {
254
- provide: AUTHENTICATION_CONFIG,
255
- useValue: blockConfig
256
- },
257
- {
258
- provide: SEARCH_CONFIG,
259
- useValue: blockConfig
260
- },
261
- {
262
- provide: PRODUCTS_CONFIG,
263
- useValue: blockConfig
264
- },
265
- {
266
- provide: CRM_CONFIG,
267
- useValue: blockConfig
268
- },
269
- {
270
- provide: CONTENT_CONFIG,
271
- useValue: blockConfig
272
- },
273
- {
274
- provide: GEOLOCATION_CONFIG,
275
- useValue: blockConfig
276
- },
277
- {
278
- provide: CONVERSATIONS_CONFIG,
279
- useValue: blockConfig
280
- },
281
- {
282
- provide: FILES_CONFIG,
283
- useValue: blockConfig
284
- },
285
- {
286
- provide: FORMS_CONFIG,
287
- useValue: blockConfig
288
- },
289
- {
290
- provide: ASSETS_CONFIG,
291
- useValue: blockConfig
292
- },
293
- {
294
- provide: CAMPAIGNS_CONFIG,
295
- useValue: blockConfig
296
- },
297
- {
298
- provide: COMPANY_CONFIG,
299
- useValue: blockConfig
300
- },
301
- {
302
- provide: REWARDS_CONFIG,
303
- useValue: blockConfig
304
- },
305
- {
306
- provide: SALES_CONFIG,
307
- useValue: blockConfig
308
- },
309
- {
310
- provide: WALLET_CONFIG,
311
- useValue: blockConfig
312
- },
313
- {
314
- provide: JARVIS_CONFIG,
315
- useValue: blockConfig
316
- },
317
- {
318
- provide: ONBOARDING_CONFIG,
319
- useValue: blockConfig
320
- },
321
- {
322
- provide: UNIVERSITY_CONFIG,
323
- useValue: blockConfig
324
- }
325
- ];
326
- return makeEnvironmentProviders(providers);
327
- }
328
- /**
329
- * Get providers array for NgModule-based applications with simplified config.
330
- *
331
- * Services are only available if their URL is configured. Accessing a service
332
- * without a configured URL will throw an error.
333
- *
334
- * @example
335
- * ```typescript
336
- * // app.module.ts
337
- * import { NgModule } from '@angular/core';
338
- * import { getBlocks23Providers } from '@23blocks/angular';
339
- *
340
- * @NgModule({
341
- * providers: [
342
- * ...getBlocks23Providers({
343
- * appId: 'your-app-id',
344
- * urls: {
345
- * authentication: 'https://gateway.23blocks.com',
346
- * crm: 'https://crm.23blocks.com',
347
- * },
348
- * }),
349
- * ],
350
- * })
351
- * export class AppModule {}
352
- * ```
353
- */ export function getBlocks23Providers(config) {
354
- // Block config for all services
355
- const blockConfig = {
356
- appId: config.appId,
357
- tenantId: config.tenantId
358
- };
359
- // Helper to create transport provider for a service URL
360
- const createTransportProvider = (token, url)=>({
361
- provide: token,
362
- useFactory: (tokenManager)=>{
363
- if (!url) return null;
364
- return createTransportWithAuth(url, config, tokenManager);
365
- },
366
- deps: [
367
- TOKEN_MANAGER
368
- ]
369
- });
370
- return [
371
- // Store config for injection
372
- {
373
- provide: PROVIDER_CONFIG,
374
- useValue: config
375
- },
376
- // Token manager factory - creates singleton within the injector
377
- {
378
- provide: TOKEN_MANAGER,
379
- useFactory: ()=>{
380
- var _config_storage;
381
- const storage = (_config_storage = config.storage) != null ? _config_storage : 'localStorage';
382
- return createTokenManager(config.appId, storage, config.tenantId);
383
- }
384
- },
385
- // Per-service transport factories (null if URL not configured)
386
- createTransportProvider(AUTHENTICATION_TRANSPORT, config.urls.authentication),
387
- createTransportProvider(SEARCH_TRANSPORT, config.urls.search),
388
- createTransportProvider(PRODUCTS_TRANSPORT, config.urls.products),
389
- createTransportProvider(CRM_TRANSPORT, config.urls.crm),
390
- createTransportProvider(CONTENT_TRANSPORT, config.urls.content),
391
- createTransportProvider(GEOLOCATION_TRANSPORT, config.urls.geolocation),
392
- createTransportProvider(CONVERSATIONS_TRANSPORT, config.urls.conversations),
393
- createTransportProvider(FILES_TRANSPORT, config.urls.files),
394
- createTransportProvider(FORMS_TRANSPORT, config.urls.forms),
395
- createTransportProvider(ASSETS_TRANSPORT, config.urls.assets),
396
- createTransportProvider(CAMPAIGNS_TRANSPORT, config.urls.campaigns),
397
- createTransportProvider(COMPANY_TRANSPORT, config.urls.company),
398
- createTransportProvider(REWARDS_TRANSPORT, config.urls.rewards),
399
- createTransportProvider(SALES_TRANSPORT, config.urls.sales),
400
- createTransportProvider(WALLET_TRANSPORT, config.urls.wallet),
401
- createTransportProvider(JARVIS_TRANSPORT, config.urls.jarvis),
402
- createTransportProvider(ONBOARDING_TRANSPORT, config.urls.onboarding),
403
- createTransportProvider(UNIVERSITY_TRANSPORT, config.urls.university),
404
- // Backward compatibility: provide TRANSPORT token using auth URL if available
405
- {
406
- provide: TRANSPORT,
407
- useFactory: (tokenManager)=>{
408
- const url = config.urls.authentication;
409
- if (url) {
410
- return createTransportWithAuth(url, config, tokenManager);
411
- }
412
- return {
413
- request: ()=>{
414
- throw new Error('[23blocks] TRANSPORT is not configured. ' + 'Use per-service transport tokens or configure urls.authentication.');
415
- }
416
- };
417
- },
418
- deps: [
419
- TOKEN_MANAGER
420
- ]
421
- },
422
- // Block configs
423
- {
424
- provide: AUTHENTICATION_CONFIG,
425
- useValue: blockConfig
426
- },
427
- {
428
- provide: SEARCH_CONFIG,
429
- useValue: blockConfig
430
- },
431
- {
432
- provide: PRODUCTS_CONFIG,
433
- useValue: blockConfig
434
- },
435
- {
436
- provide: CRM_CONFIG,
437
- useValue: blockConfig
438
- },
439
- {
440
- provide: CONTENT_CONFIG,
441
- useValue: blockConfig
442
- },
443
- {
444
- provide: GEOLOCATION_CONFIG,
445
- useValue: blockConfig
446
- },
447
- {
448
- provide: CONVERSATIONS_CONFIG,
449
- useValue: blockConfig
450
- },
451
- {
452
- provide: FILES_CONFIG,
453
- useValue: blockConfig
454
- },
455
- {
456
- provide: FORMS_CONFIG,
457
- useValue: blockConfig
458
- },
459
- {
460
- provide: ASSETS_CONFIG,
461
- useValue: blockConfig
462
- },
463
- {
464
- provide: CAMPAIGNS_CONFIG,
465
- useValue: blockConfig
466
- },
467
- {
468
- provide: COMPANY_CONFIG,
469
- useValue: blockConfig
470
- },
471
- {
472
- provide: REWARDS_CONFIG,
473
- useValue: blockConfig
474
- },
475
- {
476
- provide: SALES_CONFIG,
477
- useValue: blockConfig
478
- },
479
- {
480
- provide: WALLET_CONFIG,
481
- useValue: blockConfig
482
- },
483
- {
484
- provide: JARVIS_CONFIG,
485
- useValue: blockConfig
486
- },
487
- {
488
- provide: ONBOARDING_CONFIG,
489
- useValue: blockConfig
490
- },
491
- {
492
- provide: UNIVERSITY_CONFIG,
493
- useValue: blockConfig
494
- }
495
- ];
496
- }
497
-
498
- //# sourceMappingURL=simple-providers.js.map