http-request-manager 18.4.5 → 18.4.8

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 (204) hide show
  1. package/fesm2022/http-request-manager.mjs +372 -126
  2. package/fesm2022/http-request-manager.mjs.map +1 -1
  3. package/http-request-manager-18.4.8.tgz +0 -0
  4. package/package.json +3 -5
  5. package/types/http-request-manager.d.ts +1732 -0
  6. package/esm2022/http-request-manager.mjs +0 -5
  7. package/esm2022/lib/http-request-manager.module.mjs +0 -162
  8. package/esm2022/lib/http-request-services-demo/database-data-demo/database-data-demo.component.mjs +0 -152
  9. package/esm2022/lib/http-request-services-demo/http-request-services-demo.component.mjs +0 -61
  10. package/esm2022/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.mjs +0 -173
  11. package/esm2022/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.mjs +0 -184
  12. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.mjs +0 -80
  13. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.mjs +0 -42
  14. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.mjs +0 -88
  15. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.mjs +0 -11
  16. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.mjs +0 -29
  17. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.mjs +0 -9
  18. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.mjs +0 -12
  19. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.mjs +0 -14
  20. package/esm2022/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.mjs +0 -325
  21. package/esm2022/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.mjs +0 -277
  22. package/esm2022/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.mjs +0 -64
  23. package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.mjs +0 -13
  24. package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.mjs +0 -13
  25. package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.mjs +0 -136
  26. package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/services/state-request-demo.service.mjs +0 -97
  27. package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.mjs +0 -9
  28. package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.mjs +0 -12
  29. package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.mjs +0 -14
  30. package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.mjs +0 -336
  31. package/esm2022/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.mjs +0 -12
  32. package/esm2022/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.mjs +0 -36
  33. package/esm2022/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.mjs +0 -34
  34. package/esm2022/lib/index.mjs +0 -4
  35. package/esm2022/lib/interceptors/credentials.interceptor.mjs +0 -14
  36. package/esm2022/lib/interceptors/index.mjs +0 -5
  37. package/esm2022/lib/interceptors/models/error-settings.model.mjs +0 -10
  38. package/esm2022/lib/interceptors/models/index.mjs +0 -2
  39. package/esm2022/lib/interceptors/proxy-debugger.interceptor.mjs +0 -47
  40. package/esm2022/lib/interceptors/request-error.interceptor.mjs +0 -49
  41. package/esm2022/lib/interceptors/request-header.interceptor.mjs +0 -41
  42. package/esm2022/lib/models/config-http-options.model.mjs +0 -18
  43. package/esm2022/lib/models/config-local-storage-options.model.mjs +0 -12
  44. package/esm2022/lib/models/config-options.model.mjs +0 -12
  45. package/esm2022/lib/models/config-token.model.mjs +0 -8
  46. package/esm2022/lib/models/data-type.enum.mjs +0 -7
  47. package/esm2022/lib/models/database-storage.model.mjs +0 -10
  48. package/esm2022/lib/models/index.mjs +0 -8
  49. package/esm2022/lib/models/retry-options.model.mjs +0 -10
  50. package/esm2022/lib/services/database-manager-service/database.manager.service.mjs +0 -171
  51. package/esm2022/lib/services/database-manager-service/db.storage.service.mjs +0 -183
  52. package/esm2022/lib/services/database-manager-service/index.mjs +0 -4
  53. package/esm2022/lib/services/database-manager-service/models/index.mjs +0 -2
  54. package/esm2022/lib/services/database-manager-service/models/table-schema.mjs +0 -19
  55. package/esm2022/lib/services/index.mjs +0 -9
  56. package/esm2022/lib/services/local-storage-manager-service/index.mjs +0 -4
  57. package/esm2022/lib/services/local-storage-manager-service/local-storage-manager.service.mjs +0 -308
  58. package/esm2022/lib/services/local-storage-manager-service/local-storage-signals-manager.service.mjs +0 -277
  59. package/esm2022/lib/services/local-storage-manager-service/models/global-store-options.model.mjs +0 -13
  60. package/esm2022/lib/services/local-storage-manager-service/models/index.mjs +0 -6
  61. package/esm2022/lib/services/local-storage-manager-service/models/setting-options.model.mjs +0 -17
  62. package/esm2022/lib/services/local-storage-manager-service/models/storage-data.model.mjs +0 -10
  63. package/esm2022/lib/services/local-storage-manager-service/models/storage-option.model.mjs +0 -13
  64. package/esm2022/lib/services/local-storage-manager-service/models/storage-type.enum.mjs +0 -7
  65. package/esm2022/lib/services/request-manager-services/http-manager-signals.service.mjs +0 -199
  66. package/esm2022/lib/services/request-manager-services/http-manager.service.mjs +0 -207
  67. package/esm2022/lib/services/request-manager-services/index.mjs +0 -7
  68. package/esm2022/lib/services/request-manager-services/request-signals.service.mjs +0 -170
  69. package/esm2022/lib/services/request-manager-services/request.service.mjs +0 -192
  70. package/esm2022/lib/services/request-manager-services/rxjs-operators/countdown.mjs +0 -9
  71. package/esm2022/lib/services/request-manager-services/rxjs-operators/delay-retry.mjs +0 -10
  72. package/esm2022/lib/services/request-manager-services/rxjs-operators/index.mjs +0 -5
  73. package/esm2022/lib/services/request-manager-services/rxjs-operators/request-polling.mjs +0 -33
  74. package/esm2022/lib/services/request-manager-services/rxjs-operators/request-streaming.mjs +0 -19
  75. package/esm2022/lib/services/request-manager-state-service/http-manager-state.store.mjs +0 -592
  76. package/esm2022/lib/services/request-manager-state-service/index.mjs +0 -3
  77. package/esm2022/lib/services/request-manager-state-service/models/api-request.model.mjs +0 -22
  78. package/esm2022/lib/services/request-manager-state-service/models/index.mjs +0 -5
  79. package/esm2022/lib/services/request-manager-state-service/models/request-options.model.mjs +0 -10
  80. package/esm2022/lib/services/request-manager-state-service/models/ws-options.model.mjs +0 -15
  81. package/esm2022/lib/services/request-manager-state-service/models/ws-user.model.mjs +0 -10
  82. package/esm2022/lib/services/store-state-manager-service/index.mjs +0 -3
  83. package/esm2022/lib/services/store-state-manager-service/models/index.mjs +0 -2
  84. package/esm2022/lib/services/store-state-manager-service/models/state-storage-options.model.mjs +0 -12
  85. package/esm2022/lib/services/store-state-manager-service/store-state-manager.service.mjs +0 -71
  86. package/esm2022/lib/services/utils/app.service.mjs +0 -26
  87. package/esm2022/lib/services/utils/encryption/asymmetrical-encryption.service.mjs +0 -186
  88. package/esm2022/lib/services/utils/encryption/encryption-test.service.mjs +0 -35
  89. package/esm2022/lib/services/utils/encryption/index.mjs +0 -4
  90. package/esm2022/lib/services/utils/encryption/random.mjs +0 -52
  91. package/esm2022/lib/services/utils/encryption/symmetrical-encryption.service.mjs +0 -77
  92. package/esm2022/lib/services/utils/headers.service.mjs +0 -21
  93. package/esm2022/lib/services/utils/index.mjs +0 -6
  94. package/esm2022/lib/services/utils/object-merger.service.mjs +0 -70
  95. package/esm2022/lib/services/utils/path-query.service.mjs +0 -54
  96. package/esm2022/lib/services/utils/utils.service.mjs +0 -155
  97. package/esm2022/lib/services/ws-manager-service/index.mjs +0 -3
  98. package/esm2022/lib/services/ws-manager-service/models/channel-info.model.mjs +0 -10
  99. package/esm2022/lib/services/ws-manager-service/models/channel-notification.model.mjs +0 -14
  100. package/esm2022/lib/services/ws-manager-service/models/communication-type.enum.mjs +0 -7
  101. package/esm2022/lib/services/ws-manager-service/models/index.mjs +0 -5
  102. package/esm2022/lib/services/ws-manager-service/models/user-message.model.mjs +0 -12
  103. package/esm2022/lib/services/ws-manager-service/services/websocket.service.mjs +0 -178
  104. package/esm2022/public-api.mjs +0 -11
  105. package/http-request-manager-18.4.5.tgz +0 -0
  106. package/index.d.ts +0 -5
  107. package/lib/http-request-manager.module.d.ts +0 -39
  108. package/lib/http-request-services-demo/database-data-demo/database-data-demo.component.d.ts +0 -46
  109. package/lib/http-request-services-demo/http-request-services-demo.component.d.ts +0 -37
  110. package/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.d.ts +0 -56
  111. package/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.d.ts +0 -55
  112. package/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.d.ts +0 -26
  113. package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.d.ts +0 -13
  114. package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.d.ts +0 -27
  115. package/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.d.ts +0 -12
  116. package/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.d.ts +0 -16
  117. package/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.d.ts +0 -8
  118. package/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.d.ts +0 -14
  119. package/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.d.ts +0 -14
  120. package/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.d.ts +0 -110
  121. package/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.d.ts +0 -124
  122. package/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.d.ts +0 -15
  123. package/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.d.ts +0 -16
  124. package/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.d.ts +0 -14
  125. package/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.d.ts +0 -42
  126. package/lib/http-request-services-demo/request-manager-ws-demo/services/state-request-demo.service.d.ts +0 -15
  127. package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.d.ts +0 -8
  128. package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.d.ts +0 -14
  129. package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.d.ts +0 -14
  130. package/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.d.ts +0 -106
  131. package/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.d.ts +0 -14
  132. package/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.d.ts +0 -11
  133. package/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.d.ts +0 -14
  134. package/lib/index.d.ts +0 -3
  135. package/lib/interceptors/credentials.interceptor.d.ts +0 -8
  136. package/lib/interceptors/index.d.ts +0 -4
  137. package/lib/interceptors/models/error-settings.model.d.ts +0 -10
  138. package/lib/interceptors/models/index.d.ts +0 -1
  139. package/lib/interceptors/proxy-debugger.interceptor.d.ts +0 -12
  140. package/lib/interceptors/request-error.interceptor.d.ts +0 -10
  141. package/lib/interceptors/request-header.interceptor.d.ts +0 -15
  142. package/lib/models/config-http-options.model.d.ts +0 -21
  143. package/lib/models/config-local-storage-options.model.d.ts +0 -13
  144. package/lib/models/config-options.model.d.ts +0 -12
  145. package/lib/models/config-token.model.d.ts +0 -8
  146. package/lib/models/data-type.enum.d.ts +0 -5
  147. package/lib/models/database-storage.model.d.ts +0 -10
  148. package/lib/models/index.d.ts +0 -7
  149. package/lib/models/retry-options.model.d.ts +0 -10
  150. package/lib/services/database-manager-service/database.manager.service.d.ts +0 -33
  151. package/lib/services/database-manager-service/db.storage.service.d.ts +0 -26
  152. package/lib/services/database-manager-service/index.d.ts +0 -3
  153. package/lib/services/database-manager-service/models/index.d.ts +0 -1
  154. package/lib/services/database-manager-service/models/table-schema.d.ts +0 -11
  155. package/lib/services/index.d.ts +0 -7
  156. package/lib/services/local-storage-manager-service/index.d.ts +0 -3
  157. package/lib/services/local-storage-manager-service/local-storage-manager.service.d.ts +0 -86
  158. package/lib/services/local-storage-manager-service/local-storage-signals-manager.service.d.ts +0 -64
  159. package/lib/services/local-storage-manager-service/models/global-store-options.model.d.ts +0 -15
  160. package/lib/services/local-storage-manager-service/models/index.d.ts +0 -5
  161. package/lib/services/local-storage-manager-service/models/setting-options.model.d.ts +0 -15
  162. package/lib/services/local-storage-manager-service/models/storage-data.model.d.ts +0 -10
  163. package/lib/services/local-storage-manager-service/models/storage-option.model.d.ts +0 -15
  164. package/lib/services/local-storage-manager-service/models/storage-type.enum.d.ts +0 -5
  165. package/lib/services/request-manager-services/http-manager-signals.service.d.ts +0 -38
  166. package/lib/services/request-manager-services/http-manager.service.d.ts +0 -41
  167. package/lib/services/request-manager-services/index.d.ts +0 -6
  168. package/lib/services/request-manager-services/request-signals.service.d.ts +0 -26
  169. package/lib/services/request-manager-services/request.service.d.ts +0 -28
  170. package/lib/services/request-manager-services/rxjs-operators/countdown.d.ts +0 -2
  171. package/lib/services/request-manager-services/rxjs-operators/delay-retry.d.ts +0 -2
  172. package/lib/services/request-manager-services/rxjs-operators/index.d.ts +0 -4
  173. package/lib/services/request-manager-services/rxjs-operators/request-polling.d.ts +0 -2
  174. package/lib/services/request-manager-services/rxjs-operators/request-streaming.d.ts +0 -2
  175. package/lib/services/request-manager-state-service/http-manager-state.store.d.ts +0 -90
  176. package/lib/services/request-manager-state-service/index.d.ts +0 -2
  177. package/lib/services/request-manager-state-service/models/api-request.model.d.ts +0 -32
  178. package/lib/services/request-manager-state-service/models/index.d.ts +0 -4
  179. package/lib/services/request-manager-state-service/models/request-options.model.d.ts +0 -10
  180. package/lib/services/request-manager-state-service/models/ws-options.model.d.ts +0 -22
  181. package/lib/services/request-manager-state-service/models/ws-user.model.d.ts +0 -10
  182. package/lib/services/store-state-manager-service/index.d.ts +0 -2
  183. package/lib/services/store-state-manager-service/models/index.d.ts +0 -1
  184. package/lib/services/store-state-manager-service/models/state-storage-options.model.d.ts +0 -13
  185. package/lib/services/store-state-manager-service/store-state-manager.service.d.ts +0 -23
  186. package/lib/services/utils/app.service.d.ts +0 -8
  187. package/lib/services/utils/encryption/asymmetrical-encryption.service.d.ts +0 -17
  188. package/lib/services/utils/encryption/encryption-test.service.d.ts +0 -10
  189. package/lib/services/utils/encryption/index.d.ts +0 -3
  190. package/lib/services/utils/encryption/random.d.ts +0 -7
  191. package/lib/services/utils/encryption/symmetrical-encryption.service.d.ts +0 -14
  192. package/lib/services/utils/headers.service.d.ts +0 -10
  193. package/lib/services/utils/index.d.ts +0 -5
  194. package/lib/services/utils/object-merger.service.d.ts +0 -14
  195. package/lib/services/utils/path-query.service.d.ts +0 -11
  196. package/lib/services/utils/utils.service.d.ts +0 -24
  197. package/lib/services/ws-manager-service/index.d.ts +0 -2
  198. package/lib/services/ws-manager-service/models/channel-info.model.d.ts +0 -10
  199. package/lib/services/ws-manager-service/models/channel-notification.model.d.ts +0 -17
  200. package/lib/services/ws-manager-service/models/communication-type.enum.d.ts +0 -5
  201. package/lib/services/ws-manager-service/models/index.d.ts +0 -4
  202. package/lib/services/ws-manager-service/models/user-message.model.d.ts +0 -14
  203. package/lib/services/ws-manager-service/services/websocket.service.d.ts +0 -24
  204. package/public-api.d.ts +0 -7
@@ -1,136 +0,0 @@
1
- import { Component, inject, Input } from '@angular/core';
2
- import { FormBuilder, Validators } from '@angular/forms';
3
- import { combineLatest, map, EMPTY } from 'rxjs';
4
- import { HTTPManagerService, RandomNumber, ChannelMessage, CommunicationType } from '../../services';
5
- import { StateRequestServiceDemo } from './services/state-request-demo.service';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- import * as i2 from "@angular/forms";
9
- import * as i3 from "@angular/material/button";
10
- import * as i4 from "@angular/material/tabs";
11
- import * as i5 from "@angular/material/form-field";
12
- import * as i6 from "@angular/material/select";
13
- import * as i7 from "@angular/material/core";
14
- import * as i8 from "@angular/material/chips";
15
- import * as i9 from "@angular/material/input";
16
- import * as i10 from "@angular/material/toolbar";
17
- export class RequestManagerWsDemoComponent {
18
- constructor() {
19
- this.httpManagerService = inject(HTTPManagerService);
20
- this.stateRequestServiceDemo = inject(StateRequestServiceDemo);
21
- this.fb = inject(FormBuilder);
22
- this.user$ = this.stateRequestServiceDemo.user$;
23
- this.users$ = this.stateRequestServiceDemo.userList$;
24
- this.attempts$ = this.stateRequestServiceDemo.attempts$;
25
- this.nextRetry$ = this.stateRequestServiceDemo.nextRetry$;
26
- this.connectionStatus$ = this.stateRequestServiceDemo.status$;
27
- this.messages = this.fb.group({
28
- toUser: this.fb.control(null, Validators.required),
29
- content: this.fb.control(null, Validators.required),
30
- });
31
- this.data$ = this.stateRequestServiceDemo.data$;
32
- this.fromMe = (user, fromUser) => {
33
- return user === fromUser;
34
- };
35
- this.communicationMessages$ = this.stateRequestServiceDemo.communicationMessages$;
36
- this.latestCommunicationMessages$ = this.stateRequestServiceDemo.latestCommunicationMessages$;
37
- this.chat$ = combineLatest([this.user$, this.communicationMessages$])
38
- .pipe(map(([user, messages]) => ({ user, messages })), map(obj => {
39
- if (!obj.user)
40
- return EMPTY;
41
- // const mainUser = UserName.adapt({
42
- // id: obj.user.username,
43
- // first: obj.user?.name?.first,
44
- // last: obj.user?.name?.last,
45
- // })
46
- const mainUser = '';
47
- const messages = obj.messages.map((item) => {
48
- if (item.toUser === 'allChannels') {
49
- // item.toUser = UserName.adapt({
50
- // id: '',
51
- // first: 'All Users',
52
- // last: '',
53
- // })
54
- }
55
- // return Message.adapt({
56
- // fromUser: {
57
- // id: item.fromUser.username,
58
- // first: item.fromUser?.name?.first,
59
- // last: item.fromUser?.name?.last,
60
- // },
61
- // toUser: {
62
- // id: item.toUser.username,
63
- // first: item.toUser?.name?.first,
64
- // last: item.toUser?.name?.last,
65
- // },
66
- // content: item.content,
67
- // date: item.issued,
68
- // })
69
- });
70
- return { user: mainUser, messages };
71
- }));
72
- }
73
- get toUser() {
74
- return this.messages.get('toUser');
75
- }
76
- get content() {
77
- return this.messages.get('content');
78
- }
79
- get isValid() {
80
- return this.toUser.valid;
81
- }
82
- ngOnInit() {
83
- this.stateRequestServiceDemo.updateConnection(this.server, this.wsServer, this.jwtToken);
84
- this.stateRequestServiceDemo.getData();
85
- }
86
- onGetData() {
87
- this.stateRequestServiceDemo.getData();
88
- }
89
- onAddData() {
90
- this.stateRequestServiceDemo.addData();
91
- }
92
- onUpdateData(data) {
93
- const num = RandomNumber(1000, 9999);
94
- const newData = {
95
- "spiffe": `wavecoders.com/developer/${num}`,
96
- "id": 63,
97
- "last_name": "boni",
98
- "email": "mikeboni@hotmail.com",
99
- "first_name": "mike"
100
- };
101
- this.stateRequestServiceDemo.updateData(newData);
102
- }
103
- onSendMessage() {
104
- this.messages.markAllAsTouched();
105
- if (this.messages.invalid)
106
- return;
107
- const message = ChannelMessage.adapt(this.messages.value);
108
- this.stateRequestServiceDemo.sendMessage(message);
109
- this.content.reset();
110
- }
111
- onSendAlert() {
112
- this.messages.markAllAsTouched();
113
- if (this.messages.invalid)
114
- return;
115
- const message = ChannelMessage.adapt({ ...this.messages.value, type: CommunicationType.ALERT });
116
- this.stateRequestServiceDemo.sendMessage(message);
117
- this.content.reset();
118
- }
119
- onRemoveData(data) {
120
- const lastRec = data[data.length - 1];
121
- this.stateRequestServiceDemo.deleteData(lastRec);
122
- }
123
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RequestManagerWsDemoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
124
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RequestManagerWsDemoComponent, selector: "app-request-manager-ws-demo", inputs: { server: "server", wsServer: "wsServer", jwtToken: "jwtToken" }, ngImport: i0, template: "<div style=\"margin: 2rem;\">\n\n <h2 style=\"display: flex;\">\n <span style=\"flex:1\">HTTP Request State Manager - Websockets</span>\n <span *ngIf=\"(connectionStatus$ | async) as connected; else NOT_CONNECTED\">\n WS -\n <span style=\"color: green;\">Connected</span>\n </span>\n <ng-template #NOT_CONNECTED>\n <span style=\"color: red;\">Disconnected {{ attempts$ | async }} - {{ nextRetry$ |async }}</span>\n </ng-template>\n </h2>\n\n <div>\n\n <div *ngIf=\"(user$ | async) as userInfo\">\n <mat-toolbar>\n <div style=\"display: flex; flex:1\">\n <div style=\"flex:1\">{{ userInfo.name }}</div>\n <div>({{ userInfo.username }})</div>\n </div>\n </mat-toolbar>\n </div>\n\n <mat-tab-group animationDuration=\"0ms\">\n\n <mat-tab label=\"WS - Data Control\">\n\n <div *ngIf=\"(data$ | async) as data\" style=\"margin: 1rem; display: flex; gap: 1rem; flex-direction: column;\">\n\n <div *ngIf=\"(users$ |async) as users\">\n <mat-chip-set>\n <mat-chip *ngFor=\"let user of users\">\n {{ user.name }}\n </mat-chip>\n </mat-chip-set>\n </div>\n\n <div style=\"display: flex; gap: 1rem; margin-bottom: 1rem;\">\n <button mat-stroked-button (click)=\"onGetData()\">Get Data</button>\n <button mat-stroked-button color=\"accent\" (click)=\"onUpdateData(data)\">Update Data</button>\n <button mat-stroked-button color=\"warn\" (click)=\"onRemoveData(data)\">Remove Data</button>\n <button mat-stroked-button color=\"primary\" (click)=\"onAddData()\">Add Data</button>\n </div>\n\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <div>{{ data | json }}</div>\n <h2>{{ data.length }}</h2>\n </div>\n\n </div>\n\n </mat-tab>\n\n <mat-tab label=\"WS - Messaging\">\n\n <div *ngIf=\"(data$ | async) as data\" style=\"margin: 1rem; display: flex; gap: 1rem; flex-direction: column;\">\n\n <div *ngIf=\"(user$ | async) as userInfo\">\n\n <div *ngIf=\"(users$ | async) as users\">\n\n <div style=\"display: flex; gap: 1rem\">\n\n <div style=\"flex:1\" [formGroup]=\"messages\">\n <div style=\"display:flex\">\n <mat-form-field style=\"flex:1\" appearance=\"outline\">\n <mat-label>Users</mat-label>\n <mat-select formControlName=\"toUser\">\n <mat-option value=\"allChannels\" #selectedUser>\n All Users\n </mat-option>\n <mat-option *ngFor=\"let user of users\" [value]=\"user\">\n {{ user.username }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div style=\"display:flex\">\n <mat-form-field style=\"flex:1\" appearance=\"outline\">\n <mat-label>Send a Message</mat-label>\n <textarea\n matInput placeholder=\"Ex. It makes me feel...\"\n formControlName=\"content\"\n (keydown.enter)=\"onSendMessage(); $event.preventDefault()\"\n [disabled]=\"!isValid\"\n ></textarea>\n </mat-form-field>\n </div>\n <div style=\"display:flex; gap: .5rem;\">\n <div style=\"flex:1\"></div>\n <button mat-stroked-button (click)=\"onSendMessage()\" color=\"warn\">\n Send Alert\n </button>\n <button mat-stroked-button (click)=\"onSendAlert()\">\n Send Message\n </button>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"(chat$ | async) as chat\" style=\"border: thin gray solid; padding: 1rem; margin-top: 1rem;\">\n <!-- <app-messenger-chat\n [user]=\"chat.user\"\n [messages]=\"chat.messages\"\n ></app-messenger-chat> -->\n </div>\n\n </div>\n\n </div>\n\n </div>\n\n </mat-tab>\n\n <mat-tab label=\"WS - Custom Channel Messaging\" [disabled]=\"true\">\n WS - Custom Channel Messaging\n </mat-tab>\n\n </mat-tab-group>\n </div>\n\n</div>\n\n\n<div style=\"margin: 1rem;\">\n <h3>\n user: {{ user$ | async | json}}\n </h3>\n\n <h3>\n users: {{ users$ | async | json}}\n </h3>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i4.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i8.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i8.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] }); }
125
- }
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RequestManagerWsDemoComponent, decorators: [{
127
- type: Component,
128
- args: [{ selector: 'app-request-manager-ws-demo', template: "<div style=\"margin: 2rem;\">\n\n <h2 style=\"display: flex;\">\n <span style=\"flex:1\">HTTP Request State Manager - Websockets</span>\n <span *ngIf=\"(connectionStatus$ | async) as connected; else NOT_CONNECTED\">\n WS -\n <span style=\"color: green;\">Connected</span>\n </span>\n <ng-template #NOT_CONNECTED>\n <span style=\"color: red;\">Disconnected {{ attempts$ | async }} - {{ nextRetry$ |async }}</span>\n </ng-template>\n </h2>\n\n <div>\n\n <div *ngIf=\"(user$ | async) as userInfo\">\n <mat-toolbar>\n <div style=\"display: flex; flex:1\">\n <div style=\"flex:1\">{{ userInfo.name }}</div>\n <div>({{ userInfo.username }})</div>\n </div>\n </mat-toolbar>\n </div>\n\n <mat-tab-group animationDuration=\"0ms\">\n\n <mat-tab label=\"WS - Data Control\">\n\n <div *ngIf=\"(data$ | async) as data\" style=\"margin: 1rem; display: flex; gap: 1rem; flex-direction: column;\">\n\n <div *ngIf=\"(users$ |async) as users\">\n <mat-chip-set>\n <mat-chip *ngFor=\"let user of users\">\n {{ user.name }}\n </mat-chip>\n </mat-chip-set>\n </div>\n\n <div style=\"display: flex; gap: 1rem; margin-bottom: 1rem;\">\n <button mat-stroked-button (click)=\"onGetData()\">Get Data</button>\n <button mat-stroked-button color=\"accent\" (click)=\"onUpdateData(data)\">Update Data</button>\n <button mat-stroked-button color=\"warn\" (click)=\"onRemoveData(data)\">Remove Data</button>\n <button mat-stroked-button color=\"primary\" (click)=\"onAddData()\">Add Data</button>\n </div>\n\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <div>{{ data | json }}</div>\n <h2>{{ data.length }}</h2>\n </div>\n\n </div>\n\n </mat-tab>\n\n <mat-tab label=\"WS - Messaging\">\n\n <div *ngIf=\"(data$ | async) as data\" style=\"margin: 1rem; display: flex; gap: 1rem; flex-direction: column;\">\n\n <div *ngIf=\"(user$ | async) as userInfo\">\n\n <div *ngIf=\"(users$ | async) as users\">\n\n <div style=\"display: flex; gap: 1rem\">\n\n <div style=\"flex:1\" [formGroup]=\"messages\">\n <div style=\"display:flex\">\n <mat-form-field style=\"flex:1\" appearance=\"outline\">\n <mat-label>Users</mat-label>\n <mat-select formControlName=\"toUser\">\n <mat-option value=\"allChannels\" #selectedUser>\n All Users\n </mat-option>\n <mat-option *ngFor=\"let user of users\" [value]=\"user\">\n {{ user.username }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div style=\"display:flex\">\n <mat-form-field style=\"flex:1\" appearance=\"outline\">\n <mat-label>Send a Message</mat-label>\n <textarea\n matInput placeholder=\"Ex. It makes me feel...\"\n formControlName=\"content\"\n (keydown.enter)=\"onSendMessage(); $event.preventDefault()\"\n [disabled]=\"!isValid\"\n ></textarea>\n </mat-form-field>\n </div>\n <div style=\"display:flex; gap: .5rem;\">\n <div style=\"flex:1\"></div>\n <button mat-stroked-button (click)=\"onSendMessage()\" color=\"warn\">\n Send Alert\n </button>\n <button mat-stroked-button (click)=\"onSendAlert()\">\n Send Message\n </button>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"(chat$ | async) as chat\" style=\"border: thin gray solid; padding: 1rem; margin-top: 1rem;\">\n <!-- <app-messenger-chat\n [user]=\"chat.user\"\n [messages]=\"chat.messages\"\n ></app-messenger-chat> -->\n </div>\n\n </div>\n\n </div>\n\n </div>\n\n </mat-tab>\n\n <mat-tab label=\"WS - Custom Channel Messaging\" [disabled]=\"true\">\n WS - Custom Channel Messaging\n </mat-tab>\n\n </mat-tab-group>\n </div>\n\n</div>\n\n\n<div style=\"margin: 1rem;\">\n <h3>\n user: {{ user$ | async | json}}\n </h3>\n\n <h3>\n users: {{ users$ | async | json}}\n </h3>\n</div>\n" }]
129
- }], propDecorators: { server: [{
130
- type: Input
131
- }], wsServer: [{
132
- type: Input
133
- }], jwtToken: [{
134
- type: Input
135
- }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1tYW5hZ2VyLXdzLWRlbW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9odHRwLXJlcXVlc3Qtc2VydmljZXMtZGVtby9yZXF1ZXN0LW1hbmFnZXItd3MtZGVtby9yZXF1ZXN0LW1hbmFnZXItd3MtZGVtby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL3JlcXVlc3QtbWFuYWdlci13cy1kZW1vL3JlcXVlc3QtbWFuYWdlci13cy1kZW1vLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBYyxhQUFhLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBTyxNQUFNLE1BQU0sQ0FBQztBQUVsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7Ozs7Ozs7QUFPaEYsTUFBTSxPQUFPLDZCQUE2QjtJQUwxQztRQU9FLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQy9DLDRCQUF1QixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO1FBRXpELE9BQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7UUFNeEIsVUFBSyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUE7UUFDMUMsV0FBTSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUE7UUFFL0MsY0FBUyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUE7UUFDbEQsZUFBVSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUE7UUFFcEQsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQTtRQUV4RCxhQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQU07WUFDNUIsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFjLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQy9ELE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBYyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUNqRSxDQUFDLENBQUE7UUFjRixVQUFLLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQztRQUUzQyxXQUFNLEdBQUcsQ0FBQyxJQUFZLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO1lBQzFDLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQTtRQUMxQixDQUFDLENBQUE7UUFFRCwyQkFBc0IsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsc0JBQXNCLENBQUE7UUFDNUUsaUNBQTRCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLDRCQUE0QixDQUFBO1FBRXhGLFVBQUssR0FBa0QsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQzthQUM5RyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUNwRCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFFUixJQUFHLENBQUMsR0FBRyxDQUFDLElBQUk7Z0JBQUUsT0FBTyxLQUFLLENBQUE7WUFFMUIsb0NBQW9DO1lBQ3BDLDZCQUE2QjtZQUM3QixvQ0FBb0M7WUFDcEMsa0NBQWtDO1lBQ2xDLEtBQUs7WUFFTCxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUE7WUFFbkIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFFOUMsSUFBRyxJQUFJLENBQUMsTUFBTSxLQUFLLGFBQWEsRUFBRSxDQUFDO29CQUNqQyxpQ0FBaUM7b0JBQ2pDLGNBQWM7b0JBQ2QsMEJBQTBCO29CQUMxQixnQkFBZ0I7b0JBQ2hCLEtBQUs7Z0JBQ1AsQ0FBQztnQkFFRCx5QkFBeUI7Z0JBQ3pCLGtCQUFrQjtnQkFDbEIsb0NBQW9DO2dCQUNwQywyQ0FBMkM7Z0JBQzNDLHlDQUF5QztnQkFDekMsU0FBUztnQkFDVCxnQkFBZ0I7Z0JBQ2hCLGtDQUFrQztnQkFDbEMseUNBQXlDO2dCQUN6Qyx1Q0FBdUM7Z0JBQ3ZDLFNBQVM7Z0JBQ1QsNkJBQTZCO2dCQUM3Qix5QkFBeUI7Z0JBQ3pCLEtBQUs7WUFDUCxDQUFDLENBQUMsQ0FBQTtZQUVGLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFBO1FBRXJDLENBQUMsQ0FBQyxDQUNILENBQUM7S0FvREg7SUFySEMsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQWdCLENBQUE7SUFDbkQsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFnQixDQUFBO0lBQ3BELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFBO0lBQzFCLENBQUM7SUF5REQsUUFBUTtRQUNOLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUN4QyxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUN4QyxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUN4QyxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVc7UUFFdEIsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUVwQyxNQUFNLE9BQU8sR0FBRztZQUNkLFFBQVEsRUFBRSw0QkFBNEIsR0FBRyxFQUFFO1lBQzNDLElBQUksRUFBRSxFQUFFO1lBQ1IsV0FBVyxFQUFFLE1BQU07WUFDbkIsT0FBTyxFQUFFLHNCQUFzQjtZQUMvQixZQUFZLEVBQUUsTUFBTTtTQUNyQixDQUFBO1FBRUQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUVsRCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUNoQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTztZQUFFLE9BQU07UUFDakMsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3pELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUN0QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUNoQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTztZQUFFLE9BQU07UUFDakMsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUE7UUFDL0YsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ3RCLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBUztRQUNwQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRSxDQUFDLENBQUMsQ0FBQTtRQUNwQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2xELENBQUM7K0dBM0lVLDZCQUE2QjttR0FBN0IsNkJBQTZCLDZJQ1oxQyx1c0pBdUlBOzs0RkQzSGEsNkJBQTZCO2tCQUx6QyxTQUFTOytCQUNFLDZCQUE2Qjs4QkFXOUIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBtYXAsIEVNUFRZLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSFRUUE1hbmFnZXJTZXJ2aWNlLCBSYW5kb21OdW1iZXIsIENoYW5uZWxNZXNzYWdlLCBDb21tdW5pY2F0aW9uVHlwZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFN0YXRlUmVxdWVzdFNlcnZpY2VEZW1vIH0gZnJvbSAnLi9zZXJ2aWNlcy9zdGF0ZS1yZXF1ZXN0LWRlbW8uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1yZXF1ZXN0LW1hbmFnZXItd3MtZGVtbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXF1ZXN0LW1hbmFnZXItd3MtZGVtby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlcXVlc3QtbWFuYWdlci13cy1kZW1vLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSZXF1ZXN0TWFuYWdlcldzRGVtb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgaHR0cE1hbmFnZXJTZXJ2aWNlID0gaW5qZWN0KEhUVFBNYW5hZ2VyU2VydmljZSlcbiAgc3RhdGVSZXF1ZXN0U2VydmljZURlbW8gPSBpbmplY3QoU3RhdGVSZXF1ZXN0U2VydmljZURlbW8pXG5cbiAgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpXG5cbiAgQElucHV0KCkgc2VydmVyITogc3RyaW5nO1xuICBASW5wdXQoKSB3c1NlcnZlciE6IHN0cmluZztcbiAgQElucHV0KCkgand0VG9rZW4hOiBzdHJpbmc7XG5cbiAgdXNlciQgPSB0aGlzLnN0YXRlUmVxdWVzdFNlcnZpY2VEZW1vLnVzZXIkXG4gIHVzZXJzJCA9IHRoaXMuc3RhdGVSZXF1ZXN0U2VydmljZURlbW8udXNlckxpc3QkXG5cbiAgYXR0ZW1wdHMkID0gdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby5hdHRlbXB0cyRcbiAgbmV4dFJldHJ5JCA9IHRoaXMuc3RhdGVSZXF1ZXN0U2VydmljZURlbW8ubmV4dFJldHJ5JFxuXG4gIGNvbm5lY3Rpb25TdGF0dXMkID0gdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby5zdGF0dXMkXG5cbiAgbWVzc2FnZXMgPSB0aGlzLmZiLmdyb3VwPGFueT4oe1xuICAgIHRvVXNlcjogdGhpcy5mYi5jb250cm9sPHN0cmluZ3xudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICBjb250ZW50OiB0aGlzLmZiLmNvbnRyb2w8c3RyaW5nfG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICB9KVxuXG4gIGdldCB0b1VzZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZXMuZ2V0KCd0b1VzZXInKSBhcyBGb3JtQ29udHJvbFxuICB9XG5cbiAgZ2V0IGNvbnRlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZXMuZ2V0KCdjb250ZW50JykgYXMgRm9ybUNvbnRyb2xcbiAgfVxuXG4gIGdldCBpc1ZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLnRvVXNlci52YWxpZFxuICB9XG5cbiAgZGF0YSQgPSB0aGlzLnN0YXRlUmVxdWVzdFNlcnZpY2VEZW1vLmRhdGEkO1xuXG4gIGZyb21NZSA9ICh1c2VyOiBzdHJpbmcsIGZyb21Vc2VyOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gdXNlciA9PT0gZnJvbVVzZXJcbiAgfVxuXG4gIGNvbW11bmljYXRpb25NZXNzYWdlcyQgPSB0aGlzLnN0YXRlUmVxdWVzdFNlcnZpY2VEZW1vLmNvbW11bmljYXRpb25NZXNzYWdlcyRcbiAgbGF0ZXN0Q29tbXVuaWNhdGlvbk1lc3NhZ2VzJCA9IHRoaXMuc3RhdGVSZXF1ZXN0U2VydmljZURlbW8ubGF0ZXN0Q29tbXVuaWNhdGlvbk1lc3NhZ2VzJFxuXG4gIGNoYXQkOiBPYnNlcnZhYmxlPHsgdXNlcjogYW55LCBtZXNzYWdlczogYW55W119fGFueT4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnVzZXIkLCB0aGlzLmNvbW11bmljYXRpb25NZXNzYWdlcyRdKVxuICAucGlwZShcbiAgICBtYXAoKFt1c2VyLCBtZXNzYWdlc106IGFueSkgPT4gKHsgdXNlciwgbWVzc2FnZXMgfSkpLFxuICAgIG1hcChvYmogPT4ge1xuXG4gICAgICBpZighb2JqLnVzZXIpIHJldHVybiBFTVBUWVxuXG4gICAgICAvLyBjb25zdCBtYWluVXNlciA9IFVzZXJOYW1lLmFkYXB0KHtcbiAgICAgIC8vICAgICBpZDogb2JqLnVzZXIudXNlcm5hbWUsXG4gICAgICAvLyAgICAgZmlyc3Q6IG9iai51c2VyPy5uYW1lPy5maXJzdCxcbiAgICAgIC8vICAgICBsYXN0OiBvYmoudXNlcj8ubmFtZT8ubGFzdCxcbiAgICAgIC8vIH0pXG5cbiAgICAgIGNvbnN0IG1haW5Vc2VyID0gJydcblxuICAgICAgY29uc3QgbWVzc2FnZXMgPSBvYmoubWVzc2FnZXMubWFwKChpdGVtOiBhbnkpID0+IHtcblxuICAgICAgICBpZihpdGVtLnRvVXNlciA9PT0gJ2FsbENoYW5uZWxzJykge1xuICAgICAgICAgIC8vIGl0ZW0udG9Vc2VyID0gVXNlck5hbWUuYWRhcHQoe1xuICAgICAgICAgIC8vICAgICBpZDogJycsXG4gICAgICAgICAgLy8gICAgIGZpcnN0OiAnQWxsIFVzZXJzJyxcbiAgICAgICAgICAvLyAgICAgbGFzdDogJycsXG4gICAgICAgICAgLy8gfSlcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJldHVybiBNZXNzYWdlLmFkYXB0KHtcbiAgICAgICAgLy8gICAgIGZyb21Vc2VyOiB7XG4gICAgICAgIC8vICAgICAgIGlkOiBpdGVtLmZyb21Vc2VyLnVzZXJuYW1lLFxuICAgICAgICAvLyAgICAgICBmaXJzdDogaXRlbS5mcm9tVXNlcj8ubmFtZT8uZmlyc3QsXG4gICAgICAgIC8vICAgICAgIGxhc3Q6IGl0ZW0uZnJvbVVzZXI/Lm5hbWU/Lmxhc3QsXG4gICAgICAgIC8vICAgICB9LFxuICAgICAgICAvLyAgICAgdG9Vc2VyOiB7XG4gICAgICAgIC8vICAgICAgIGlkOiBpdGVtLnRvVXNlci51c2VybmFtZSxcbiAgICAgICAgLy8gICAgICAgZmlyc3Q6IGl0ZW0udG9Vc2VyPy5uYW1lPy5maXJzdCxcbiAgICAgICAgLy8gICAgICAgbGFzdDogaXRlbS50b1VzZXI/Lm5hbWU/Lmxhc3QsXG4gICAgICAgIC8vICAgICB9LFxuICAgICAgICAvLyAgICAgY29udGVudDogaXRlbS5jb250ZW50LFxuICAgICAgICAvLyAgICAgZGF0ZTogaXRlbS5pc3N1ZWQsXG4gICAgICAgIC8vIH0pXG4gICAgICB9KVxuXG4gICAgICByZXR1cm4geyB1c2VyOiBtYWluVXNlciwgbWVzc2FnZXMgfVxuXG4gICAgfSlcbiAgKTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnN0YXRlUmVxdWVzdFNlcnZpY2VEZW1vLnVwZGF0ZUNvbm5lY3Rpb24odGhpcy5zZXJ2ZXIsIHRoaXMud3NTZXJ2ZXIsIHRoaXMuand0VG9rZW4pO1xuICAgIHRoaXMuc3RhdGVSZXF1ZXN0U2VydmljZURlbW8uZ2V0RGF0YSgpXG4gIH1cblxuICBvbkdldERhdGEoKSB7XG4gICAgdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby5nZXREYXRhKClcbiAgfVxuXG4gIG9uQWRkRGF0YSgpIHtcbiAgICB0aGlzLnN0YXRlUmVxdWVzdFNlcnZpY2VEZW1vLmFkZERhdGEoKVxuICB9XG5cbiAgb25VcGRhdGVEYXRhKGRhdGE6IGFueVtdKSB7XG5cbiAgICBjb25zdCBudW0gPSBSYW5kb21OdW1iZXIoMTAwMCwgOTk5OSlcblxuICAgIGNvbnN0IG5ld0RhdGEgPSB7XG4gICAgICBcInNwaWZmZVwiOiBgd2F2ZWNvZGVycy5jb20vZGV2ZWxvcGVyLyR7bnVtfWAsXG4gICAgICBcImlkXCI6IDYzLFxuICAgICAgXCJsYXN0X25hbWVcIjogXCJib25pXCIsXG4gICAgICBcImVtYWlsXCI6IFwibWlrZWJvbmlAaG90bWFpbC5jb21cIixcbiAgICAgIFwiZmlyc3RfbmFtZVwiOiBcIm1pa2VcIlxuICAgIH1cblxuICAgIHRoaXMuc3RhdGVSZXF1ZXN0U2VydmljZURlbW8udXBkYXRlRGF0YShuZXdEYXRhKVxuXG4gIH1cblxuICBvblNlbmRNZXNzYWdlKCkge1xuICAgIHRoaXMubWVzc2FnZXMubWFya0FsbEFzVG91Y2hlZCgpXG4gICAgaWYgKHRoaXMubWVzc2FnZXMuaW52YWxpZCkgcmV0dXJuXG4gICAgY29uc3QgbWVzc2FnZSA9IENoYW5uZWxNZXNzYWdlLmFkYXB0KHRoaXMubWVzc2FnZXMudmFsdWUpXG4gICAgdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby5zZW5kTWVzc2FnZShtZXNzYWdlKVxuICAgIHRoaXMuY29udGVudC5yZXNldCgpXG4gIH1cblxuICBvblNlbmRBbGVydCgpIHtcbiAgICB0aGlzLm1lc3NhZ2VzLm1hcmtBbGxBc1RvdWNoZWQoKVxuICAgIGlmICh0aGlzLm1lc3NhZ2VzLmludmFsaWQpIHJldHVyblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBDaGFubmVsTWVzc2FnZS5hZGFwdCh7IC4uLnRoaXMubWVzc2FnZXMudmFsdWUsIHR5cGU6IENvbW11bmljYXRpb25UeXBlLkFMRVJUIH0pXG4gICAgdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby5zZW5kTWVzc2FnZShtZXNzYWdlKVxuICAgIHRoaXMuY29udGVudC5yZXNldCgpXG4gIH1cblxuICBvblJlbW92ZURhdGEoZGF0YTogYW55KSB7XG4gICAgY29uc3QgbGFzdFJlYyA9IGRhdGFbZGF0YS5sZW5ndGggLTFdXG4gICAgdGhpcy5zdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtby5kZWxldGVEYXRhKGxhc3RSZWMpXG4gIH1cblxufVxuIiwiPGRpdiBzdHlsZT1cIm1hcmdpbjogMnJlbTtcIj5cblxuICA8aDIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxuICAgIDxzcGFuIHN0eWxlPVwiZmxleDoxXCI+SFRUUCBSZXF1ZXN0IFN0YXRlIE1hbmFnZXIgLSBXZWJzb2NrZXRzPC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwiKGNvbm5lY3Rpb25TdGF0dXMkIHwgYXN5bmMpIGFzIGNvbm5lY3RlZDsgZWxzZSBOT1RfQ09OTkVDVEVEXCI+XG4gICAgICBXUyAtXG4gICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiBncmVlbjtcIj5Db25uZWN0ZWQ8L3NwYW4+XG4gICAgPC9zcGFuPlxuICAgIDxuZy10ZW1wbGF0ZSAjTk9UX0NPTk5FQ1RFRD5cbiAgICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6IHJlZDtcIj5EaXNjb25uZWN0ZWQge3sgYXR0ZW1wdHMkIHwgYXN5bmMgfX0gLSB7eyBuZXh0UmV0cnkkIHxhc3luYyB9fTwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2gyPlxuXG4gIDxkaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiKHVzZXIkIHwgYXN5bmMpIGFzIHVzZXJJbmZvXCI+XG4gICAgICA8bWF0LXRvb2xiYXI+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4OjFcIj5cbiAgICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleDoxXCI+e3sgdXNlckluZm8ubmFtZSB9fTwvZGl2PlxuICAgICAgICAgIDxkaXY+KHt7IHVzZXJJbmZvLnVzZXJuYW1lIH19KTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LXRvb2xiYXI+XG4gICAgPC9kaXY+XG5cbiAgICA8bWF0LXRhYi1ncm91cCBhbmltYXRpb25EdXJhdGlvbj1cIjBtc1wiPlxuXG4gICAgICA8bWF0LXRhYiBsYWJlbD1cIldTIC0gRGF0YSBDb250cm9sXCI+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cIihkYXRhJCB8IGFzeW5jKSBhcyBkYXRhXCIgc3R5bGU9XCJtYXJnaW46IDFyZW07IGRpc3BsYXk6IGZsZXg7IGdhcDogMXJlbTsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcIj5cblxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIodXNlcnMkIHxhc3luYykgYXMgdXNlcnNcIj5cbiAgICAgICAgICAgIDxtYXQtY2hpcC1zZXQ+XG4gICAgICAgICAgICAgIDxtYXQtY2hpcCAqbmdGb3I9XCJsZXQgdXNlciBvZiB1c2Vyc1wiPlxuICAgICAgICAgICAgICAgIHt7IHVzZXIubmFtZSB9fVxuICAgICAgICAgICAgICA8L21hdC1jaGlwPlxuICAgICAgICAgICAgPC9tYXQtY2hpcC1zZXQ+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZ2FwOiAxcmVtOyBtYXJnaW4tYm90dG9tOiAxcmVtO1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cIm9uR2V0RGF0YSgpXCI+R2V0IERhdGE8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cIm9uVXBkYXRlRGF0YShkYXRhKVwiPlVwZGF0ZSBEYXRhPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cIndhcm5cIiAoY2xpY2spPVwib25SZW1vdmVEYXRhKGRhdGEpXCI+UmVtb3ZlIERhdGE8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJvbkFkZERhdGEoKVwiPkFkZCBEYXRhPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZ2FwOiAxcmVtOyBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1wiPlxuICAgICAgICAgICAgPGRpdj57eyBkYXRhIHwganNvbiB9fTwvZGl2PlxuICAgICAgICAgICAgPGgyPnt7IGRhdGEubGVuZ3RoIH19PC9oMj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cblxuICAgICAgPC9tYXQtdGFiPlxuXG4gICAgICA8bWF0LXRhYiBsYWJlbD1cIldTIC0gTWVzc2FnaW5nXCI+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cIihkYXRhJCB8IGFzeW5jKSBhcyBkYXRhXCIgc3R5bGU9XCJtYXJnaW46IDFyZW07IGRpc3BsYXk6IGZsZXg7IGdhcDogMXJlbTsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcIj5cblxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIodXNlciQgfCBhc3luYykgYXMgdXNlckluZm9cIj5cblxuICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCIodXNlcnMkIHwgYXN5bmMpIGFzIHVzZXJzXCI+XG5cbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGdhcDogMXJlbVwiPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImZsZXg6MVwiIFtmb3JtR3JvdXBdPVwibWVzc2FnZXNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OmZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwiZmxleDoxXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlVzZXJzPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwidG9Vc2VyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cImFsbENoYW5uZWxzXCIgI3NlbGVjdGVkVXNlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgQWxsIFVzZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdXNlciBvZiB1c2Vyc1wiIFt2YWx1ZV09XCJ1c2VyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHVzZXIudXNlcm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OmZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwiZmxleDoxXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlNlbmQgYSBNZXNzYWdlPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIkV4LiBJdCBtYWtlcyBtZSBmZWVsLi4uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25TZW5kTWVzc2FnZSgpOyAkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzVmFsaWRcIlxuICAgICAgICAgICAgICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTpmbGV4OyBnYXA6IC41cmVtO1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleDoxXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJvblNlbmRNZXNzYWdlKClcIiBjb2xvcj1cIndhcm5cIj5cbiAgICAgICAgICAgICAgICAgICAgICBTZW5kIEFsZXJ0XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwib25TZW5kQWxlcnQoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgIFNlbmQgTWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKGNoYXQkIHwgYXN5bmMpIGFzIGNoYXRcIiBzdHlsZT1cImJvcmRlcjogdGhpbiBncmF5IHNvbGlkOyBwYWRkaW5nOiAxcmVtOyBtYXJnaW4tdG9wOiAxcmVtO1wiPlxuICAgICAgICAgICAgICAgIDwhLS0gPGFwcC1tZXNzZW5nZXItY2hhdFxuICAgICAgICAgICAgICAgICAgW3VzZXJdPVwiY2hhdC51c2VyXCJcbiAgICAgICAgICAgICAgICAgIFttZXNzYWdlc109XCJjaGF0Lm1lc3NhZ2VzXCJcbiAgICAgICAgICAgICAgICA+PC9hcHAtbWVzc2VuZ2VyLWNoYXQ+IC0tPlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cblxuICAgICAgPC9tYXQtdGFiPlxuXG4gICAgICA8bWF0LXRhYiBsYWJlbD1cIldTIC0gQ3VzdG9tIENoYW5uZWwgTWVzc2FnaW5nXCIgW2Rpc2FibGVkXT1cInRydWVcIj5cbiAgICAgICAgV1MgLSBDdXN0b20gQ2hhbm5lbCBNZXNzYWdpbmdcbiAgICAgIDwvbWF0LXRhYj5cblxuICAgIDwvbWF0LXRhYi1ncm91cD5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuXG5cbjxkaXYgc3R5bGU9XCJtYXJnaW46IDFyZW07XCI+XG4gIDxoMz5cbiAgICB1c2VyOiB7eyB1c2VyJCB8IGFzeW5jIHwganNvbn19XG4gIDwvaDM+XG5cbiAgPGgzPlxuICAgIHVzZXJzOiB7eyB1c2VycyQgfCBhc3luYyB8IGpzb259fVxuICA8L2gzPlxuPC9kaXY+XG4iXX0=
@@ -1,97 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { UserData } from '../models/user-data.model';
3
- import { DatabaseStorage, DataType, RetryOptions } from '../../../models';
4
- import { HTTPManagerStateService, ApiRequest, RequestOptions, RandomNumber } from '../../../services';
5
- import { OIDCClient } from '../models/oidc-client.model';
6
- import * as i0 from "@angular/core";
7
- export class StateRequestServiceDemo extends HTTPManagerStateService {
8
- constructor() {
9
- super(ApiRequest.adapt({
10
- server: 'https://oidc.example.com',
11
- retry: RetryOptions.adapt({
12
- times: 3,
13
- delay: 1,
14
- }),
15
- adapter: OIDCClient.adapt,
16
- ws: {
17
- id: 'WS-MY_DATA',
18
- wsChannels: ['allChannels'],
19
- wsServer: '',
20
- jwtToken: '',
21
- access: ['read,write,delete,update'],
22
- userAdapter: {
23
- id: 'username', // matches adapter in UserData
24
- adapter: UserData.adapt,
25
- },
26
- retry: RetryOptions.adapt({
27
- times: 3,
28
- delay: 10,
29
- }),
30
- }
31
- }), DataType.ARRAY, DatabaseStorage.adapt({
32
- table: 'ws_demo_data',
33
- expiresIn: '5mn',
34
- }));
35
- this.attempts$ = this.wsRetryAttempts$;
36
- this.nextRetry$ = this.wsNextRetry$;
37
- }
38
- updateConnection(server, wsServer, jwtToken) {
39
- this.setApiRequestOptions({
40
- server,
41
- retry: RetryOptions.adapt({
42
- times: 3,
43
- delay: 1,
44
- }),
45
- adapter: OIDCClient.adapt,
46
- ws: {
47
- id: 'WS-MY_DATA',
48
- wsServer,
49
- jwtToken,
50
- userAdapter: {
51
- id: 'username', // matches adapter in UserData
52
- adapter: UserData.adapt,
53
- },
54
- retry: RetryOptions.adapt({
55
- times: 3,
56
- delay: 10,
57
- }),
58
- }
59
- });
60
- }
61
- getData() {
62
- this.fetchRecords(RequestOptions.adapt({ path: ['ai', 'tests'] }));
63
- }
64
- addData() {
65
- const num = RandomNumber(1000, 9999);
66
- const newData = {
67
- "spiffe": `sample.com/developer/${num}`,
68
- "last_name": "boni",
69
- "email": "mikeboni@hotmail.com",
70
- "first_name": "mike"
71
- };
72
- this.createRecord(newData, RequestOptions.adapt({ path: ['ai', 'tests'] }));
73
- }
74
- sendMessage(data) {
75
- console.log('sendMessage', data);
76
- this.wsMessaging(data);
77
- }
78
- updateData(data) {
79
- const sampleOptions = RequestOptions.adapt({ path: ['ai', 'tests', data.id] });
80
- console.log('updateData', sampleOptions);
81
- this.updateRecord(data, sampleOptions);
82
- }
83
- deleteData(data) {
84
- const sampleOptions = RequestOptions.adapt({ path: ['ai', 'tests', data.id] });
85
- console.log('deleteData', sampleOptions);
86
- this.deleteRecord(sampleOptions);
87
- }
88
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StateRequestServiceDemo, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
89
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StateRequestServiceDemo, providedIn: 'root' }); }
90
- }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StateRequestServiceDemo, decorators: [{
92
- type: Injectable,
93
- args: [{
94
- providedIn: 'root'
95
- }]
96
- }], ctorParameters: () => [] });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtcmVxdWVzdC1kZW1vLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2h0dHAtcmVxdWVzdC1zZXJ2aWNlcy1kZW1vL3JlcXVlc3QtbWFuYWdlci13cy1kZW1vL3NlcnZpY2VzL3N0YXRlLXJlcXVlc3QtZGVtby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBa0IsTUFBTSxtQkFBbUIsQ0FBQztBQUN0SCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBS3pELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSx1QkFBNEI7SUFLdkU7UUFDRSxLQUFLLENBQ0QsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUNmLE1BQU0sRUFBRSwwQkFBMEI7WUFDbEMsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUM7Z0JBQ3hCLEtBQUssRUFBRSxDQUFDO2dCQUNSLEtBQUssRUFBRSxDQUFDO2FBQ1QsQ0FBQztZQUNGLE9BQU8sRUFBRSxVQUFVLENBQUMsS0FBSztZQUN6QixFQUFFLEVBQUU7Z0JBQ0YsRUFBRSxFQUFFLFlBQVk7Z0JBQ2hCLFVBQVUsRUFBRSxDQUFDLGFBQWEsQ0FBQztnQkFDM0IsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osUUFBUSxFQUFFLEVBQUU7Z0JBQ1osTUFBTSxFQUFFLENBQUMsMEJBQTBCLENBQUM7Z0JBQ3BDLFdBQVcsRUFBRTtv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LE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFBO1FBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDbEMsQ0FBQzsrR0FuR1EsdUJBQXVCO21IQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTs7NEZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVXNlckRhdGEgfSBmcm9tICcuLi9tb2RlbHMvdXNlci1kYXRhLm1vZGVsJztcbmltcG9ydCB7IERhdGFiYXNlU3RvcmFnZSwgRGF0YVR5cGUsIFJldHJ5T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5cbmltcG9ydCB7IEhUVFBNYW5hZ2VyU3RhdGVTZXJ2aWNlLCBBcGlSZXF1ZXN0LCBSZXF1ZXN0T3B0aW9ucywgUmFuZG9tTnVtYmVyLCBDaGFubmVsTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IE9JRENDbGllbnQgfSBmcm9tICcuLi9tb2RlbHMvb2lkYy1jbGllbnQubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTdGF0ZVJlcXVlc3RTZXJ2aWNlRGVtbyBleHRlbmRzIEhUVFBNYW5hZ2VyU3RhdGVTZXJ2aWNlPGFueT4ge1xuXG4gIGF0dGVtcHRzJCA9IHRoaXMud3NSZXRyeUF0dGVtcHRzJFxuICBuZXh0UmV0cnkkID0gdGhpcy53c05leHRSZXRyeSRcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcbiAgICAgICAgQXBpUmVxdWVzdC5hZGFwdCh7XG4gICAgICAgICAgc2VydmVyOiAnaHR0cHM6Ly9vaWRjLmV4YW1wbGUuY29tJyxcbiAgICAgICAgICByZXRyeTogUmV0cnlPcHRpb25zLmFkYXB0KHtcbiAgICAgICAgICAgIHRpbWVzOiAzLFxuICAgICAgICAgICAgZGVsYXk6IDEsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgYWRhcHRlcjogT0lEQ0NsaWVudC5hZGFwdCxcbiAgICAgICAgICB3czoge1xuICAgICAgICAgICAgaWQ6ICdXUy1NWV9EQVRBJyxcbiAgICAgICAgICAgIHdzQ2hhbm5lbHM6IFsnYWxsQ2hhbm5lbHMnXSxcbiAgICAgICAgICAgIHdzU2VydmVyOiAnJyxcbiAgICAgICAgICAgIGp3dFRva2VuOiAnJyxcbiAgICAgICAgICAgIGFjY2VzczogWydyZWFkLHdyaXRlLGRlbGV0ZSx1cGRhdGUnXSxcbiAgICAgICAgICAgIHVzZXJBZGFwdGVyOiB7XG4gICAgICAgICAgICAgIGlkOiAndXNlcm5hbWUnLCAvLyBtYXRjaGVzIGFkYXB0ZXIgaW4gVXNlckRhdGFcbiAgICAgICAgICAgICAgYWRhcHRlcjogVXNlckRhdGEuYWRhcHQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmV0cnk6IFJldHJ5T3B0aW9ucy5hZGFwdCh7XG4gICAgICAgICAgICAgIHRpbWVzOiAzLFxuICAgICAgICAgICAgICBkZWxheTogMTAsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBEYXRhVHlwZS5BUlJBWSxcbiAgICAgICAgRGF0YWJhc2VTdG9yYWdlLmFkYXB0KHtcbiAgICAgICAgICB0YWJsZTogJ3dzX2RlbW9fZGF0YScsXG4gICAgICAgICAgZXhwaXJlc0luOiAnNW1uJyxcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9XG5cbiAgICB1cGRhdGVDb25uZWN0aW9uKHNlcnZlcjogc3RyaW5nLCB3c1NlcnZlcjogc3RyaW5nLCBqd3RUb2tlbjogc3RyaW5nKSB7XG5cbiAgICAgIHRoaXMuc2V0QXBpUmVxdWVzdE9wdGlvbnMoe1xuICAgICAgICAgIHNlcnZlcixcbiAgICAgICAgICByZXRyeTogUmV0cnlPcHRpb25zLmFkYXB0KHtcbiAgICAgICAgICAgIHRpbWVzOiAzLFxuICAgICAgICAgICAgZGVsYXk6IDEsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgYWRhcHRlcjogT0lEQ0NsaWVudC5hZGFwdCxcbiAgICAgICAgICB3czoge1xuICAgICAgICAgICAgaWQ6ICdXUy1NWV9EQVRBJyxcbiAgICAgICAgICAgIHdzU2VydmVyLFxuICAgICAgICAgICAgand0VG9rZW4sXG4gICAgICAgICAgICB1c2VyQWRhcHRlcjoge1xuICAgICAgICAgICAgICBpZDogJ3VzZXJuYW1lJywgLy8gbWF0Y2hlcyBhZGFwdGVyIGluIFVzZXJEYXRhXG4gICAgICAgICAgICAgIGFkYXB0ZXI6IFVzZXJEYXRhLmFkYXB0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJldHJ5OiBSZXRyeU9wdGlvbnMuYWRhcHQoe1xuICAgICAgICAgICAgICB0aW1lczogMyxcbiAgICAgICAgICAgICAgZGVsYXk6IDEwLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgfVxuXG4gICAgZ2V0RGF0YSgpIHtcbiAgICAgIHRoaXMuZmV0Y2hSZWNvcmRzKFJlcXVlc3RPcHRpb25zLmFkYXB0KHsgcGF0aDogWydhaScsJ3Rlc3RzJ10gfSkpXG4gICAgfVxuXG4gICAgYWRkRGF0YSgpIHtcblxuICAgICAgY29uc3QgbnVtID0gUmFuZG9tTnVtYmVyKDEwMDAsIDk5OTkpXG5cbiAgICAgIGNvbnN0IG5ld0RhdGEgPSAgICAge1xuICAgICAgICAgIFwic3BpZmZlXCI6IGBzYW1wbGUuY29tL2RldmVsb3Blci8ke251bX1gLFxuICAgICAgICAgIFwibGFzdF9uYW1lXCI6IFwiYm9uaVwiLFxuICAgICAgICAgIFwiZW1haWxcIjogXCJtaWtlYm9uaUBob3RtYWlsLmNvbVwiLFxuICAgICAgICAgIFwiZmlyc3RfbmFtZVwiOiBcIm1pa2VcIlxuICAgICAgfVxuXG4gICAgICB0aGlzLmNyZWF0ZVJlY29yZChuZXdEYXRhLCBSZXF1ZXN0T3B0aW9ucy5hZGFwdCh7IHBhdGg6IFsnYWknLCd0ZXN0cyddIH0pKVxuXG4gICAgfVxuXG4gICAgc2VuZE1lc3NhZ2UoZGF0YTogQ2hhbm5lbE1lc3NhZ2UpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdzZW5kTWVzc2FnZScsIGRhdGEpXG4gICAgICB0aGlzLndzTWVzc2FnaW5nKGRhdGEpXG4gICAgfVxuXG4gICAgdXBkYXRlRGF0YShkYXRhOiBhbnkpIHtcbiAgICAgIGNvbnN0IHNhbXBsZU9wdGlvbnMgPSBSZXF1ZXN0T3B0aW9ucy5hZGFwdCh7IHBhdGg6IFsnYWknLCAndGVzdHMnLCBkYXRhLmlkXSB9KVxuICAgICAgY29uc29sZS5sb2coJ3VwZGF0ZURhdGEnLCBzYW1wbGVPcHRpb25zKVxuICAgICAgdGhpcy51cGRhdGVSZWNvcmQoZGF0YSwgc2FtcGxlT3B0aW9ucylcblxuICAgIH1cblxuICAgIGRlbGV0ZURhdGEoZGF0YTogYW55KSB7XG4gICAgICBjb25zdCBzYW1wbGVPcHRpb25zID0gUmVxdWVzdE9wdGlvbnMuYWRhcHQoeyBwYXRoOiBbJ2FpJywgJ3Rlc3RzJywgZGF0YS5pZF0gfSlcbiAgICAgIGNvbnNvbGUubG9nKCdkZWxldGVEYXRhJywgc2FtcGxlT3B0aW9ucylcbiAgICAgIHRoaXMuZGVsZXRlUmVjb3JkKHNhbXBsZU9wdGlvbnMpXG4gICAgfVxuXG59XG4iXX0=
@@ -1,9 +0,0 @@
1
- export class AIPrompt {
2
- constructor(response = '') {
3
- this.response = response;
4
- }
5
- static adapt(item) {
6
- return new AIPrompt(item?.response);
7
- }
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtcGxlLWFpLXByb21wdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1zaWduYWxzLW1hbmFnZXItZGVtby9tb2RlbHMvc2FtcGxlLWFpLXByb21wdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sUUFBUTtJQUVuQixZQUNTLFdBQVcsRUFBRTtRQUFiLGFBQVEsR0FBUixRQUFRLENBQUs7SUFDbkIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUVyQixPQUFPLElBQUksUUFBUSxDQUNqQixJQUFJLEVBQUUsUUFBUSxDQUNmLENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFJUHJvbXB0SW50ZXJmYWNlIHtcbiAgcmVzcG9uc2U6IHN0cmluZ1xufVxuXG5leHBvcnQgY2xhc3MgQUlQcm9tcHQgaW1wbGVtZW50cyBBSVByb21wdEludGVyZmFjZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlc3BvbnNlID0gJycsXG4gICkge31cblxuICBzdGF0aWMgYWRhcHQoaXRlbT86IGFueSk6IEFJUHJvbXB0IHtcblxuICAgIHJldHVybiBuZXcgQUlQcm9tcHQoXG4gICAgICBpdGVtPy5yZXNwb25zZSxcbiAgICApXG5cbiAgfVxuXG59XG4iXX0=
@@ -1,12 +0,0 @@
1
- export class ClientInfo {
2
- constructor(domain = '', service = '', id = 0, name = '') {
3
- this.domain = domain;
4
- this.service = service;
5
- this.id = id;
6
- this.name = name;
7
- }
8
- static adapt(item) {
9
- return new ClientInfo(item?.domain, item?.service, item?.id, (item?.first_name || item?.last_name) ? `${item?.first_name} ${item?.last_name}` : '');
10
- }
11
- }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtcGxlLWNsaWVudC1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9odHRwLXJlcXVlc3Qtc2VydmljZXMtZGVtby9yZXF1ZXN0LXNpZ25hbHMtbWFuYWdlci1kZW1vL21vZGVscy9zYW1wbGUtY2xpZW50LWluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxPQUFPLFVBQVU7SUFFckIsWUFDUyxTQUFTLEVBQUUsRUFDWCxVQUFVLEVBQUUsRUFDWixLQUFLLENBQUMsRUFDTixPQUFPLEVBQUU7UUFIVCxXQUFNLEdBQU4sTUFBTSxDQUFLO1FBQ1gsWUFBTyxHQUFQLE9BQU8sQ0FBSztRQUNaLE9BQUUsR0FBRixFQUFFLENBQUk7UUFDTixTQUFJLEdBQUosSUFBSSxDQUFLO0lBQ2YsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUVyQixPQUFPLElBQUksVUFBVSxDQUNuQixJQUFJLEVBQUUsTUFBTSxFQUNaLElBQUksRUFBRSxPQUFPLEVBQ2IsSUFBSSxFQUFFLEVBQUUsRUFDUixDQUFDLElBQUksRUFBRSxVQUFVLElBQUksSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxVQUFVLElBQUksSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3RGLENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENsaWVudEluZm9JbnRlcmZhY2Uge1xuICBkb21haW46IHN0cmluZ1xuICBzZXJ2aWNlOiBzdHJpbmdcbiAgaWQ6IG51bWJlclxuICBuYW1lOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNsYXNzIENsaWVudEluZm8gaW1wbGVtZW50cyBDbGllbnRJbmZvSW50ZXJmYWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZG9tYWluID0gJycsXG4gICAgcHVibGljIHNlcnZpY2UgPSAnJyxcbiAgICBwdWJsaWMgaWQgPSAwLFxuICAgIHB1YmxpYyBuYW1lID0gJycsXG4gICkge31cblxuICBzdGF0aWMgYWRhcHQoaXRlbT86IGFueSk6IENsaWVudEluZm8ge1xuXG4gICAgcmV0dXJuIG5ldyBDbGllbnRJbmZvKFxuICAgICAgaXRlbT8uZG9tYWluLFxuICAgICAgaXRlbT8uc2VydmljZSxcbiAgICAgIGl0ZW0/LmlkLFxuICAgICAgKGl0ZW0/LmZpcnN0X25hbWUgfHwgaXRlbT8ubGFzdF9uYW1lKSA/IGAke2l0ZW0/LmZpcnN0X25hbWV9ICR7aXRlbT8ubGFzdF9uYW1lfWAgOiAnJyxcbiAgICApXG5cbiAgfVxuXG59XG5cblxuIl19
@@ -1,14 +0,0 @@
1
- export class ClientInfoMapper {
2
- constructor(id = 0, first_name = '', last_name = '', email = '') {
3
- this.id = id;
4
- this.first_name = first_name;
5
- this.last_name = last_name;
6
- this.email = email;
7
- }
8
- static adapt(item) {
9
- const first_name = (item?.name) ? item.name.split(' ')[0] : '';
10
- const last_name = (item?.name) ? item.name.split(' ')[1] : '';
11
- return new ClientInfoMapper(item?.id, first_name, last_name, item?.email);
12
- }
13
- }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtcGxlLW1hcHBlci1jbGllbnQtaW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaHR0cC1yZXF1ZXN0LXNlcnZpY2VzLWRlbW8vcmVxdWVzdC1zaWduYWxzLW1hbmFnZXItZGVtby9tb2RlbHMvc2FtcGxlLW1hcHBlci1jbGllbnQtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQ1MsS0FBSyxDQUFDLEVBQ04sYUFBYSxFQUFFLEVBQ2YsWUFBWSxFQUFFLEVBQ2QsUUFBUSxFQUFFO1FBSFYsT0FBRSxHQUFGLEVBQUUsQ0FBSTtRQUNOLGVBQVUsR0FBVixVQUFVLENBQUs7UUFDZixjQUFTLEdBQVQsU0FBUyxDQUFLO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBSztJQUNoQixDQUFDO0lBRUosTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFVO1FBRXJCLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBQzlELE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBRTdELE9BQU8sSUFBSSxnQkFBZ0IsQ0FDekIsSUFBSSxFQUFFLEVBQUUsRUFDUixVQUFVLEVBQ1YsU0FBUyxFQUNULElBQUksRUFBRSxLQUFLLENBQ1osQ0FBQTtJQUVILENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ2xpZW50SW5mb01hcHBlckludGVyZmFjZSB7XG4gIGlkOiBudW1iZXJcbiAgZmlyc3RfbmFtZTogc3RyaW5nXG4gIGxhc3RfbmFtZTogc3RyaW5nXG4gIGVtYWlsOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNsYXNzIENsaWVudEluZm9NYXBwZXIgaW1wbGVtZW50cyBDbGllbnRJbmZvTWFwcGVySW50ZXJmYWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaWQgPSAwLFxuICAgIHB1YmxpYyBmaXJzdF9uYW1lID0gJycsXG4gICAgcHVibGljIGxhc3RfbmFtZSA9ICcnLFxuICAgIHB1YmxpYyBlbWFpbCA9ICcnLFxuICApIHt9XG5cbiAgc3RhdGljIGFkYXB0KGl0ZW0/OiBhbnkpOiBDbGllbnRJbmZvTWFwcGVyIHtcblxuICAgIGNvbnN0IGZpcnN0X25hbWUgPSAoaXRlbT8ubmFtZSkgPyBpdGVtLm5hbWUuc3BsaXQoJyAnKVswXSA6ICcnXG4gICAgY29uc3QgbGFzdF9uYW1lID0gKGl0ZW0/Lm5hbWUpID8gaXRlbS5uYW1lLnNwbGl0KCcgJylbMV0gOiAnJ1xuXG4gICAgcmV0dXJuIG5ldyBDbGllbnRJbmZvTWFwcGVyKFxuICAgICAgaXRlbT8uaWQsXG4gICAgICBmaXJzdF9uYW1lLFxuICAgICAgbGFzdF9uYW1lLFxuICAgICAgaXRlbT8uZW1haWwsXG4gICAgKVxuXG4gIH1cblxufVxuXG5cbiJdfQ==