http-request-manager 18.7.21 → 18.7.24

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 (198) hide show
  1. package/fesm2022/http-request-manager.mjs +7633 -0
  2. package/fesm2022/http-request-manager.mjs.map +1 -0
  3. package/http-request-manager-18.7.24.tgz +0 -0
  4. package/package.json +16 -5
  5. package/types/http-request-manager.d.ts +2277 -0
  6. package/ARCHITECTURE.md +0 -483
  7. package/DATABASE_README.md +0 -1176
  8. package/HTTP_MANAGER_README.md +0 -579
  9. package/HTTP_SINGNALS_MANAGER_README.md +0 -654
  10. package/HTTP_STATE_MANAGER_README.md +0 -948
  11. package/INTERCEPTOR_README.md +0 -549
  12. package/LOCAL_STORAGE_README.md +0 -1056
  13. package/STORE_STATE_MANAGER_README.md +0 -1322
  14. package/UTILS_README.md +0 -1186
  15. package/WS_MANAGER_README.md +0 -613
  16. package/ng-package.json +0 -8
  17. package/src/lib/http-request-manager.module.ts +0 -132
  18. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.html +0 -65
  19. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.scss +0 -0
  20. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.ts +0 -224
  21. package/src/lib/http-request-services-demo/http-request-services-demo.component.html +0 -114
  22. package/src/lib/http-request-services-demo/http-request-services-demo.component.scss +0 -6
  23. package/src/lib/http-request-services-demo/http-request-services-demo.component.ts +0 -52
  24. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.html +0 -195
  25. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.scss +0 -17
  26. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.ts +0 -206
  27. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.html +0 -200
  28. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.scss +0 -17
  29. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.ts +0 -212
  30. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.html +0 -53
  31. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.scss +0 -60
  32. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.ts +0 -72
  33. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.ts +0 -28
  34. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.html +0 -10
  35. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.scss +0 -29
  36. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.ts +0 -100
  37. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.ts +0 -22
  38. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.html +0 -8
  39. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.scss +0 -19
  40. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.ts +0 -26
  41. package/src/lib/http-request-services-demo/request-manager-demo/models/app-session.model.ts +0 -30
  42. package/src/lib/http-request-services-demo/request-manager-demo/models/app.model.ts +0 -19
  43. package/src/lib/http-request-services-demo/request-manager-demo/models/get-sample.model.ts +0 -25
  44. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.ts +0 -19
  45. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-details.ts +0 -24
  46. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.ts +0 -30
  47. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client.model.ts +0 -49
  48. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.ts +0 -33
  49. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.html +0 -392
  50. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.scss +0 -24
  51. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.ts +0 -461
  52. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.html +0 -393
  53. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.scss +0 -24
  54. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.ts +0 -421
  55. package/src/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.ts +0 -87
  56. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/services/state-data-request.service.ts +0 -120
  57. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.css +0 -0
  58. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.html +0 -3
  59. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.ts +0 -16
  60. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.css +0 -0
  61. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.html +0 -3
  62. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.ts +0 -16
  63. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.css +0 -31
  64. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.html +0 -72
  65. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.scss +0 -41
  66. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.spec.ts +0 -205
  67. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.ts +0 -77
  68. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.css +0 -11
  69. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.html +0 -96
  70. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.spec.ts +0 -31
  71. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.ts +0 -229
  72. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.css +0 -30
  73. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.html +0 -172
  74. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.spec.ts +0 -31
  75. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.ts +0 -239
  76. package/src/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.ts +0 -31
  77. package/src/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.ts +0 -32
  78. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.css +0 -0
  79. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.html +0 -84
  80. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.ts +0 -41
  81. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/index.ts +0 -3
  82. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/message-service-demo.service.ts +0 -83
  83. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/notification-service-demo.service.ts +0 -147
  84. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/state-service-demo.service.ts +0 -158
  85. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.html +0 -53
  86. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.scss +0 -60
  87. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.ts +0 -72
  88. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-download.module.ts +0 -28
  89. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.html +0 -10
  90. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.scss +0 -29
  91. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.ts +0 -100
  92. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/models/download-labels-model.ts +0 -22
  93. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.html +0 -8
  94. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.scss +0 -19
  95. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.ts +0 -26
  96. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app-session.model.ts +0 -30
  97. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app.model.ts +0 -19
  98. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/get-sample.model.ts +0 -25
  99. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.ts +0 -19
  100. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-details.ts +0 -24
  101. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.ts +0 -30
  102. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client.model.ts +0 -49
  103. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.ts +0 -33
  104. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.html +0 -380
  105. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.scss +0 -24
  106. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.ts +0 -410
  107. package/src/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.ts +0 -28
  108. package/src/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.ts +0 -48
  109. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.css +0 -0
  110. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.html +0 -23
  111. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.ts +0 -36
  112. package/src/lib/index.ts +0 -3
  113. package/src/lib/interceptors/credentials.interceptor.ts +0 -16
  114. package/src/lib/interceptors/index.ts +0 -6
  115. package/src/lib/interceptors/models/error-settings.model.ts +0 -22
  116. package/src/lib/interceptors/models/index.ts +0 -2
  117. package/src/lib/interceptors/proxy-debugger.interceptor.ts +0 -46
  118. package/src/lib/interceptors/request-error.interceptor.ts +0 -65
  119. package/src/lib/interceptors/request-header.interceptor.ts +0 -53
  120. package/src/lib/models/config-http-options.model.ts +0 -42
  121. package/src/lib/models/config-local-storage-options.model.ts +0 -27
  122. package/src/lib/models/config-options.model.ts +0 -27
  123. package/src/lib/models/config-token.model.ts +0 -9
  124. package/src/lib/models/data-type.enum.ts +0 -5
  125. package/src/lib/models/database-storage.model.ts +0 -24
  126. package/src/lib/models/index.ts +0 -12
  127. package/src/lib/models/retry-options.model.ts +0 -22
  128. package/src/lib/services/database-manager-service/database.manager.service.ts +0 -262
  129. package/src/lib/services/database-manager-service/db.storage.service.ts +0 -207
  130. package/src/lib/services/database-manager-service/index.ts +0 -4
  131. package/src/lib/services/database-manager-service/models/index.ts +0 -2
  132. package/src/lib/services/database-manager-service/models/table-schema.ts +0 -33
  133. package/src/lib/services/index.ts +0 -12
  134. package/src/lib/services/local-storage-manager-service/index.ts +0 -4
  135. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.spec.ts +0 -71
  136. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.ts +0 -426
  137. package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.spec.ts +0 -67
  138. package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.ts +0 -345
  139. package/src/lib/services/local-storage-manager-service/models/global-store-options.model.ts +0 -30
  140. package/src/lib/services/local-storage-manager-service/models/index.ts +0 -6
  141. package/src/lib/services/local-storage-manager-service/models/setting-options.model.ts +0 -35
  142. package/src/lib/services/local-storage-manager-service/models/storage-data.model.ts +0 -24
  143. package/src/lib/services/local-storage-manager-service/models/storage-option.model.ts +0 -32
  144. package/src/lib/services/local-storage-manager-service/models/storage-type.enum.ts +0 -5
  145. package/src/lib/services/request-manager-services/README.md +0 -268
  146. package/src/lib/services/request-manager-services/http-manager-signals.service.ts +0 -246
  147. package/src/lib/services/request-manager-services/http-manager.service.spec.ts +0 -232
  148. package/src/lib/services/request-manager-services/http-manager.service.ts +0 -274
  149. package/src/lib/services/request-manager-services/index.ts +0 -8
  150. package/src/lib/services/request-manager-services/request-signals.service.ts +0 -214
  151. package/src/lib/services/request-manager-services/request.service.ts +0 -309
  152. package/src/lib/services/request-manager-services/rxjs-operators/countdown.ts +0 -17
  153. package/src/lib/services/request-manager-services/rxjs-operators/delay-retry.ts +0 -16
  154. package/src/lib/services/request-manager-services/rxjs-operators/index.ts +0 -4
  155. package/src/lib/services/request-manager-services/rxjs-operators/request-polling.ts +0 -35
  156. package/src/lib/services/request-manager-services/rxjs-operators/request-streaming.ts +0 -436
  157. package/src/lib/services/request-manager-state-service/http-manager-state.store.ts +0 -1321
  158. package/src/lib/services/request-manager-state-service/index.ts +0 -3
  159. package/src/lib/services/request-manager-state-service/models/api-request.model.ts +0 -61
  160. package/src/lib/services/request-manager-state-service/models/index.ts +0 -6
  161. package/src/lib/services/request-manager-state-service/models/request-options.model.ts +0 -22
  162. package/src/lib/services/request-manager-state-service/models/stream-type.enum.ts +0 -13
  163. package/src/lib/services/request-manager-state-service/models/ws-options.model.ts +0 -39
  164. package/src/lib/services/store-state-manager-service/index.ts +0 -3
  165. package/src/lib/services/store-state-manager-service/models/index.ts +0 -2
  166. package/src/lib/services/store-state-manager-service/models/state-storage-options.model.ts +0 -24
  167. package/src/lib/services/store-state-manager-service/store-state-manager.service.ts +0 -88
  168. package/src/lib/services/utils/app.service.spec.ts +0 -25
  169. package/src/lib/services/utils/app.service.ts +0 -21
  170. package/src/lib/services/utils/encryption/README.md +0 -79
  171. package/src/lib/services/utils/encryption/asymmetrical-encryption.service.ts +0 -282
  172. package/src/lib/services/utils/encryption/encryption-test.service.ts +0 -39
  173. package/src/lib/services/utils/encryption/index.ts +0 -5
  174. package/src/lib/services/utils/encryption/random.ts +0 -81
  175. package/src/lib/services/utils/encryption/symmetrical-encryption.service.ts +0 -93
  176. package/src/lib/services/utils/headers.service.spec.ts +0 -80
  177. package/src/lib/services/utils/headers.service.ts +0 -18
  178. package/src/lib/services/utils/index.ts +0 -7
  179. package/src/lib/services/utils/object-merger.service.spec.ts +0 -18
  180. package/src/lib/services/utils/object-merger.service.ts +0 -78
  181. package/src/lib/services/utils/path-query.service.spec.ts +0 -117
  182. package/src/lib/services/utils/path-query.service.ts +0 -69
  183. package/src/lib/services/utils/random-color.utils.ts +0 -83
  184. package/src/lib/services/utils/utils.service.spec.ts +0 -165
  185. package/src/lib/services/utils/utils.service.ts +0 -192
  186. package/src/lib/services/ws-manager-service/index.ts +0 -4
  187. package/src/lib/services/ws-manager-service/models/channel-info.model.ts +0 -24
  188. package/src/lib/services/ws-manager-service/models/channel-message-data.model.ts +0 -24
  189. package/src/lib/services/ws-manager-service/models/channel-message.model.ts +0 -24
  190. package/src/lib/services/ws-manager-service/models/communication-type.enum.ts +0 -5
  191. package/src/lib/services/ws-manager-service/models/index.ts +0 -5
  192. package/src/lib/services/ws-manager-service/models/ws-user.model.ts +0 -38
  193. package/src/lib/services/ws-manager-service/services/index.ts +0 -3
  194. package/src/lib/services/ws-manager-service/services/websocket.service.ts +0 -392
  195. package/src/public-api.ts +0 -14
  196. package/tsconfig.lib.json +0 -32
  197. package/tsconfig.lib.prod.json +0 -10
  198. package/tsconfig.spec.json +0 -14
@@ -1,421 +0,0 @@
1
- import { Component, Input, OnInit, ViewChild, inject } from '@angular/core';
2
-
3
- import { StateManagerDemoService } from './services/state-manager-demo.service';
4
- import { FormBuilder, Validators, FormArray } from '@angular/forms';
5
-
6
- import { Observable, BehaviorSubject, EMPTY, map, tap, catchError, throwError } from 'rxjs';
7
-
8
- import { ClientInfo } from '../request-manager-demo/models/sample-client-info';
9
- import { ClientInfoMapper } from '../request-manager-demo/models/sample-mapper-client-info';
10
- import { AIPrompt } from '../request-manager-demo/models/sample-ai-prompt';
11
-
12
- import { DataType } from '../../models';
13
- import { DatabaseStorage } from '../../models/database-storage.model';
14
- import { HTTPManagerService, ApiRequest, StreamType } from '../../services';
15
-
16
-
17
- @Component({
18
- selector: 'app-request-manager-state-demo',
19
- templateUrl: './request-manager-state-demo.component.html',
20
- styleUrls: ['./request-manager-state-demo.component.scss'],
21
- providers: [StateManagerDemoService, HTTPManagerService],
22
- standalone: false
23
- })
24
- export class RequestManagerStateDemoComponent implements OnInit {
25
-
26
- @Input() server = 'http://localhost:8080'
27
- @Input() adapter?: Function
28
- @Input() mapper?: Function
29
-
30
- stateManagerDemoService = inject(StateManagerDemoService)
31
-
32
- displayedColumns: string[] = []
33
-
34
- // Dynamic columns based on data structure
35
- getColumnsFromData(data: any[]): string[] {
36
- if (!data || data.length === 0) {
37
- return []
38
- }
39
-
40
- const firstRecord = data[0]
41
- if (!firstRecord || typeof firstRecord !== 'object') {
42
- return []
43
- }
44
-
45
- // Extract all keys from the first record, excluding null/undefined
46
- return Object.keys(firstRecord).filter(key =>
47
- firstRecord[key] !== null && firstRecord[key] !== undefined
48
- )
49
- }
50
-
51
- // Update displayed columns when data changes
52
- updateDisplayedColumns(data: any[]): void {
53
- this.displayedColumns = this.getColumnsFromData(data)
54
- console.log('[STATE DEMO] Updated columns:', this.displayedColumns)
55
- }
56
-
57
- // Helper to check if value is an object
58
- isObject(value: any): boolean {
59
- return value !== null && typeof value === 'object' && !Array.isArray(value)
60
- }
61
-
62
- // Helper to safely get data length
63
- getDataLength(data: any): number {
64
- if (Array.isArray(data)) {
65
- return data.length
66
- }
67
- return 0
68
- }
69
-
70
- selectedRecord$?: Observable<ClientInfo|null>
71
-
72
- fb = inject(FormBuilder)
73
-
74
- streamTypes = [
75
- { id: 'JSON', value: 'json' },
76
- { id: 'NDJSON', value: 'ndjson' },
77
- { id: 'AI Streaming', value: 'ai_streaming' },
78
- { id: 'Event Stream', value: 'event_stream' },
79
- { id: 'Auto', value: 'auto' },
80
- ]
81
-
82
- streamType = 'Auto'
83
-
84
- httpManagerService = inject(HTTPManagerService)
85
-
86
- isPending$ = this.stateManagerDemoService.isPending$
87
- error$ = this.stateManagerDemoService.error$
88
-
89
- countdown$ = this.httpManagerService.countdown$
90
-
91
- GET_error$ = new BehaviorSubject<string>('')
92
- POST_error$ = new BehaviorSubject<string>('')
93
- PUT_error$ = new BehaviorSubject<string>('')
94
- DELETE_error$ = new BehaviorSubject<string>('')
95
-
96
- STREAM_error$ = new BehaviorSubject<string>('')
97
- STREAM_AI_error$ = new BehaviorSubject<string>('')
98
-
99
- GET$ = new BehaviorSubject<any>(null)
100
- POST$ = new BehaviorSubject(null)
101
- PUT$ = new BehaviorSubject(null)
102
- DELETE$ = new BehaviorSubject(null)
103
-
104
- STREAM = new BehaviorSubject(null)
105
- STREAM$ = this.STREAM.asObservable()
106
-
107
- STREAM_AI = new BehaviorSubject<{response: string}[]>([])
108
- STREAM_AI$ = this.STREAM_AI.asObservable()
109
- .pipe(
110
- map((items: any) => (items) ? items.map((item: any) => item.response) : []),
111
- map((items: any) => items.join('\n').trim()),
112
- )
113
-
114
- @ViewChild("failedState", { static: true }) failedState: any
115
- @ViewChild("pollingState", { static: true }) pollingState: any
116
-
117
- questionControl = this.fb.control("", [Validators.required])
118
-
119
- requestType = ''
120
-
121
- prompts: string[] = []
122
-
123
- AIType = 0
124
-
125
- get dataObservable$() {
126
-
127
- switch (this.requestType) {
128
- case 'GET':
129
- return this.GET$
130
-
131
- case 'PUT':
132
- return this.PUT$
133
-
134
- case 'POST':
135
- return this.POST$
136
-
137
- case 'DELETE':
138
- return this.DELETE$
139
-
140
- case 'STREAM':
141
- return this.STREAM
142
-
143
- case 'STREAM_AI':
144
- return this.STREAM_AI
145
-
146
- default:
147
- return this.GET$
148
- break;
149
- }
150
-
151
- }
152
-
153
- sampleClientData = {
154
- id: 0,
155
- name: "Old School Dates",
156
- domain: "osd.com",
157
- service: "osd",
158
- spiffe: "osd.com/osd",
159
- secret: "SMOPECXP-OS4P-USOG-X2II-3XMD1FQDR3IJX",
160
- created: 1693003138,
161
- modified: 1693003138,
162
- icon: "",
163
- imageFile: "",
164
- }
165
-
166
- selectedRecord = this.fb.control(null)
167
-
168
- requestForm = this.fb.group({
169
- datatype: this.fb.control('ARRAY'),
170
- path: this.fb.control<string>("ai/"),
171
- headers: this.fb.array([]),
172
- adapter: [null],
173
- mapper: [null],
174
- retry: this.fb.group({
175
- times: [3],
176
- delay: [3],
177
- }),
178
- polling: [3],
179
- database: this.fb.group({
180
- table: [''],
181
- expiresIn: ['1m'],
182
- })
183
- })
184
-
185
- get hasChanged() {
186
- return this.requestForm.dirty || this.requestForm.untouched
187
- }
188
-
189
- get dataType() {
190
- return this.requestForm.get("datatype")?.value
191
- }
192
-
193
- get database() {
194
- return this.requestForm.get("database")?.value
195
- }
196
-
197
- get retry() {
198
- return this.requestForm.get("retry")?.value
199
- }
200
-
201
- sampleAdaptors = [
202
- { label: "ClientInfo Basic", value: ClientInfo.adapt },
203
- { label: "AI Prompt", value: AIPrompt.adapt },
204
- ]
205
-
206
- sampleMappers = [
207
- { label: "Mapper Basic", value: ClientInfoMapper.adapt },
208
- { label: "AI Prompt", value: AIPrompt.adapt },
209
- ]
210
-
211
- get headers(): FormArray {
212
- return this.requestForm.get('headers') as FormArray
213
- }
214
-
215
- get isValid() {
216
- this.requestForm.markAllAsTouched()
217
- return this.requestForm.valid
218
- }
219
-
220
- // server = `http://sample-endpoint/as/authorization.oauth2`
221
-
222
- arrayObjectsToObjects = (arr: any[]) => {
223
- return Array.isArray(arr) ? arr.reduce((obj, item) => Object.assign(obj, { [item.key]: item.value }), {}) : {}
224
- }
225
-
226
- props = (adapter: any) => {
227
- return (adapter) ? adapter() : null
228
- }
229
-
230
- constructor() { }
231
-
232
- ngOnInit() {
233
-
234
- this.stateManagerDemoService.data$.pipe(
235
- tap((data) => console.log("API STREAM_AI response", data)),
236
- )
237
-
238
- this.error$.pipe(
239
- tap((data) => {
240
- debugger
241
- console.log("API STREAM response", data)
242
- }),
243
- catchError(error => {
244
- return throwError(() => this.errorHandling(error, 'STREAM'))
245
- })
246
- )
247
-
248
- this.selectedRecord.valueChanges
249
- .subscribe((data: ClientInfo|null) => {
250
- this.selectedRecord$ = (data) ? this.stateManagerDemoService.selectRecord$(data.id) : EMPTY
251
- })
252
-
253
- this.stateManagerDemoService.data$
254
- .pipe(
255
- tap((data: any) => {
256
- console.log('[COMPONENT] State data received:', data)
257
-
258
- switch (this.requestType) {
259
- case 'GET':
260
- console.log('[COMPONENT] Updating GET$ with data:', data)
261
- this.GET$.next(data)
262
- break;
263
-
264
- case 'PUT':
265
- console.log('[COMPONENT] Updating PUT$ with data:', data)
266
- this.PUT$.next(data)
267
- break;
268
-
269
- case 'POST':
270
- console.log('[COMPONENT] Updating POST$ with data:', data)
271
- this.POST$.next(data)
272
- break;
273
-
274
- case 'DELETE':
275
- console.log('[COMPONENT] Updating DELETE$ with data:', data)
276
- this.DELETE$.next(data)
277
- break;
278
-
279
- case 'STREAM':
280
- console.log('[COMPONENT] Updating STREAM$ with data:', data)
281
- this.STREAM.next(data)
282
- // Update table columns dynamically based on streaming data
283
- if (data && Array.isArray(data) && data.length > 0) {
284
- this.updateDisplayedColumns(data)
285
- }
286
- break;
287
-
288
- case 'STREAM_AI':
289
- console.log('[COMPONENT] Updating STREAM_AI$ with data:', data)
290
- this.STREAM_AI.next(data)
291
- break;
292
-
293
- default:
294
- console.log('[COMPONENT] No requestType set, ignoring data')
295
- break;
296
- }
297
-
298
- })
299
- ).subscribe()
300
-
301
- }
302
-
303
- onStreamType(type: string) {
304
- this.streamType = type
305
- }
306
-
307
- addHeader() {
308
- const header = this.fb.group({
309
- key: ['', Validators.required],
310
- value: ['']
311
- });
312
- this.headers.push(header)
313
- }
314
-
315
- removeHeader(index: number) {
316
- this.headers.removeAt(index)
317
- }
318
-
319
- compileRequest() {
320
-
321
- const requestParams = this.requestForm.value
322
-
323
- requestParams.headers = this.arrayObjectsToObjects(
324
- requestParams.headers || []
325
- )
326
-
327
- const pathReq = (requestParams.path === "") ? [] : (requestParams.path || "").split("/")
328
-
329
- if (!this.pollingState.checked) requestParams.polling = 0
330
-
331
- if (!this.failedState.checked) {
332
- requestParams.retry = { times: 0,delay: 0 }
333
- }
334
-
335
- const currentOptions = ApiRequest.adapt(requestParams)
336
- currentOptions.path = []
337
- currentOptions.server = this.server
338
- currentOptions.adapter = this.adapter
339
- currentOptions.mapper = this.mapper
340
- const apiOptions = ApiRequest.adapt({ ...currentOptions, path: pathReq })
341
-
342
- return { apiOptions: apiOptions, path: pathReq }
343
-
344
- }
345
-
346
- onSetStateOptions() {
347
-
348
- if(!this.isValid) return
349
-
350
- const reqParams = this.compileRequest()
351
-
352
- const db = DatabaseStorage.adapt(this.database)
353
- const type = this.dataType === "ARRAY" ? DataType.ARRAY : DataType.OBJECT
354
- this.stateManagerDemoService.setAPIOptions(reqParams.apiOptions, type, db)
355
-
356
- this.requestForm.markAsPristine()
357
- }
358
-
359
- onClearRecords() {
360
- this.stateManagerDemoService.clearRecords()
361
- }
362
-
363
- onGetRequest() {
364
- this.requestType = 'GET'
365
- this.stateManagerDemoService.getClients()
366
- }
367
-
368
- onCreateRequest() {
369
- this.requestType = 'POST'
370
- this.stateManagerDemoService.createClient(this.sampleClientData)
371
- }
372
-
373
- onUpdateRequest() {
374
- this.requestType = 'PUT'
375
- this.stateManagerDemoService.updateClient(this.sampleClientData)
376
- }
377
-
378
- onDeleteRequest() {
379
- this.requestType = 'DELETE'
380
- this.stateManagerDemoService.deleteClient(this.sampleClientData)
381
- }
382
-
383
- onStreamRequest() {
384
- console.log('[COMPONENT] onStreamRequest called')
385
-
386
- if(!this.isValid) {
387
- console.log('[COMPONENT] Form invalid, aborting')
388
- return
389
- }
390
-
391
- console.log('[COMPONENT] Compiling request...')
392
- const reqParams = this.compileRequest()
393
-
394
- console.log('[COMPONENT] Setting stream options:', reqParams.apiOptions)
395
- reqParams.apiOptions.stream = true
396
- reqParams.apiOptions.streamType = this.streamType as StreamType
397
- this.requestType = 'STREAM'
398
-
399
- console.log('[COMPONENT] Calling streamRequest...')
400
- this.stateManagerDemoService.streamRequest()
401
-
402
- }
403
-
404
- errorHandling(err: any, type: string) { console.log(err, type)
405
- if(type === 'GET') this.GET_error$.next(err.message)
406
- if(type === 'POST') this.POST_error$.next(err.message)
407
- if(type === 'PUT') this.PUT_error$.next(err.message)
408
- if(type === 'DELETE') this.DELETE_error$.next(err.message)
409
- if(type === 'STREAM') this.STREAM_error$.next(err.message)
410
- if(type === 'STREAM_AI') this.STREAM_AI_error$.next(err.message)
411
- }
412
-
413
- onSelectAIType(type: number) {
414
- this.AIType = type
415
- }
416
-
417
- onClearHistory() {
418
- this.prompts = []
419
- }
420
-
421
- }
@@ -1,87 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
-
3
- import { DataType, DatabaseStorage } from '../../../models';
4
- import { HTTPManagerStateService, ApiRequest, RequestOptions } from '../../../services';
5
-
6
- import { ClientInfo } from '../../request-manager-demo/models/sample-client-info';
7
- import { ClientInfoMapper } from '../../request-manager-demo/models/sample-mapper-client-info';
8
-
9
- @Injectable()
10
- export class StateManagerDemoService extends HTTPManagerStateService<any> {
11
-
12
- constructor() {
13
- super(
14
- ApiRequest.adapt({
15
- server: "",
16
- path: [],
17
- headers: {},
18
- adapter: ClientInfo.adapt,
19
- mapper: ClientInfoMapper.adapt,
20
- stream: false,
21
- }),
22
- DataType.ARRAY,
23
- DatabaseStorage.adapt()
24
- )
25
- }
26
-
27
- setAPIOptions(apiOptions: ApiRequest, dataType: DataType, database?: DatabaseStorage) {
28
- this.setApiRequestOptions(apiOptions, dataType, database)
29
- }
30
-
31
- getClients() {
32
-
33
- // const headers = {
34
- // auth: "sample-auth-token"
35
- // }
36
- // const sampleOptions = RequestOptions.adapt({ path: ["id", 12], headers, sample: true })
37
- this.fetchRecords()
38
-
39
- }
40
-
41
- createClient(data: any) {
42
-
43
- // const headers = {
44
- // auth: "sample-auth-token"
45
- // }
46
-
47
- // const sampleOptions = RequestOptions.adapt({ path: ["id", 12], headers, sample: true })
48
- this.createRecord(data)
49
-
50
- }
51
-
52
- updateClient(data: ClientInfo) {
53
-
54
- // const headers = {
55
- // auth: "sample-auth-token"
56
- // }
57
- data.id = 1031
58
- const sampleOptions = RequestOptions.adapt({ path: [data.id] })
59
- this.updateRecord(data, sampleOptions)
60
-
61
- }
62
-
63
- deleteClient(data: ClientInfo) {
64
-
65
- // const headers = {
66
- // auth: "sample-auth-token"
67
- // }
68
-
69
- data.id = 1031
70
- const sampleOptions = RequestOptions.adapt({ path: [data.id] })
71
- this.deleteRecord(sampleOptions)
72
-
73
- }
74
-
75
- streamRequest() {
76
- console.log('[DEMO SERVICE] streamRequest called')
77
-
78
- const headers = {
79
- auth: "sample-auth-token"
80
- }
81
-
82
- console.log('[DEMO SERVICE] Calling fetchStream with headers:', headers)
83
- this.fetchStream()
84
-
85
- }
86
-
87
- }
@@ -1,120 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { RandomNumber } from '../../../../services/utils/encryption/random';
3
- import { RetryOptions, DataType, DatabaseStorage } from '../../../../models';
4
-
5
- import { HTTPManagerStateService, ApiRequest, RequestOptions } from '../../../../services';
6
-
7
- import { OIDCClient } from '../../models/oidc-client.model';
8
- import { UserData } from '../../models/user-data.model';
9
- import { ChannelMessage } from '../../../../services/ws-manager-service/models/channel-message.model';
10
-
11
- @Injectable({
12
- providedIn: 'root'
13
- })
14
- export class StateDataRequestService extends HTTPManagerStateService<any> {
15
-
16
- attempts$ = this.wsRetryAttempts$
17
- nextRetry$ = this.wsNextRetry$
18
-
19
- path = ['ai','tests']
20
-
21
- constructor() {
22
- super(
23
- ApiRequest.adapt({
24
- server: '',
25
- retry: RetryOptions.adapt({
26
- times: 3,
27
- delay: 1,
28
- }),
29
- adapter: OIDCClient.adapt,
30
- ws: {
31
- id: ``,
32
- // wsChannels: ['allChannels'],
33
- // access: ['read,write,delete,update'],
34
- wsServer: '',
35
- jwtToken: '',
36
- user: UserData.adapt(),
37
- retry: RetryOptions.adapt({
38
- times: 3,
39
- delay: 10,
40
- }),
41
- }
42
- }),
43
- DataType.ARRAY,
44
- DatabaseStorage.adapt({
45
- table: 'ws_demo_data',
46
- expiresIn: '5mn',
47
- })
48
- )
49
- }
50
-
51
- updateConnection(
52
- server: string,
53
- wsServer: string,
54
- jwtToken: string,
55
- user: any,
56
- path: string[] = [],
57
- wsChannel: string = ''
58
- ) {
59
-
60
- this.path = path
61
-
62
- this.setApiRequestOptions({
63
- server,
64
- retry: RetryOptions.adapt({
65
- times: 3,
66
- delay: 1,
67
- }),
68
- adapter: OIDCClient.adapt,
69
- ws: {
70
- id: wsChannel,
71
- wsServer,
72
- jwtToken,
73
- user, // general info about user
74
- retry: RetryOptions.adapt({
75
- times: 3,
76
- delay: 10,
77
- }),
78
- }
79
- })
80
-
81
- }
82
-
83
- addData() {
84
-
85
- const num = RandomNumber(1000, 9999)
86
-
87
- const newData = {
88
- "spiffe": `sample.com/developer/${num}`,
89
- "last_name": "boni",
90
- "email": "mikeboni@hotmail.com",
91
- "first_name": "mike"
92
- }
93
-
94
- this.createRecord(newData, RequestOptions.adapt({ path: this.path }) )
95
-
96
- }
97
-
98
- sendMessage(data: ChannelMessage) {
99
- console.log('sendMessage', data)
100
- this.wsMessaging(data)
101
- }
102
-
103
- getData() {
104
- this.fetchRecords(RequestOptions.adapt({ path: this.path }) )
105
- }
106
-
107
- updateData(data: any) {
108
- const sampleOptions = RequestOptions.adapt({ path: [...this.path, data.id] })
109
- console.log('updateData', sampleOptions)
110
- this.updateRecord(data, sampleOptions)
111
-
112
- }
113
-
114
- deleteData(data: any) {
115
- const sampleOptions = RequestOptions.adapt({ path: [...this.path, data.id] })
116
- console.log('deleteData', sampleOptions)
117
- this.deleteRecord(sampleOptions)
118
- }
119
-
120
- }
@@ -1,16 +0,0 @@
1
- import { Component, OnInit } from '@angular/core';
2
-
3
- @Component({
4
- selector: 'app-ws-ai-messaging',
5
- templateUrl: './ws-ai-messaging.component.html',
6
- styleUrls: ['./ws-ai-messaging.component.css'],
7
- standalone: false
8
- })
9
- export class WsAiMessagingComponent implements OnInit {
10
-
11
- constructor() { }
12
-
13
- ngOnInit() {
14
- }
15
-
16
- }
@@ -1,16 +0,0 @@
1
- import { Component, OnInit } from '@angular/core';
2
-
3
- @Component({
4
- selector: 'app-ws-chats',
5
- templateUrl: './ws-chats.component.html',
6
- styleUrls: ['./ws-chats.component.css'],
7
- standalone: false
8
- })
9
- export class WsChatsComponent implements OnInit {
10
-
11
- constructor() { }
12
-
13
- ngOnInit() {
14
- }
15
-
16
- }
@@ -1,31 +0,0 @@
1
- /* Highlight the current user chip with the theme primary color */
2
- .user-chip--primary {
3
- /* Prefer MDC/Material tokens; fall back to a safe primary */
4
- background-color: var(--mdc-theme-primary, var(--md-sys-color-primary, #3f51b5)) !important;
5
- /* Ensure foreground text renders white */
6
- color: #fff !important;
7
- /* Also set MDC chip variables where applicable */
8
- --mdc-evolution-chip-container-color: var(--mdc-theme-primary, var(--md-sys-color-primary, #3f51b5));
9
- --mdc-evolution-chip-label-text-color: #fff;
10
- }
11
-
12
- /* Force inner MDC chip parts to inherit white foreground */
13
- .user-chip--primary :is(
14
- .mdc-evolution-chip__text-label,
15
- .mdc-evolution-chip__action,
16
- .mdc-evolution-chip__cell,
17
- .mat-mdc-chip-action-label
18
- ) {
19
- color: #fff !important;
20
- }
21
-
22
- /* Strong fallback: ensure all descendants render white */
23
- .user-chip--primary,
24
- .user-chip--primary * {
25
- color: #fff !important;
26
- }
27
- .box {
28
- padding: .5rem;
29
- border: 1px solid rgb(174, 174, 13);
30
- background-color: rgb(236, 236, 175);
31
- }