http-request-manager 15.0.24 → 15.0.26

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 (232) hide show
  1. package/ng-package.json +8 -0
  2. package/package.json +1 -14
  3. package/src/lib/http-request-manager.module.ts +101 -0
  4. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.html +3 -0
  5. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.scss +0 -0
  6. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.ts +105 -0
  7. package/src/lib/http-request-services-demo/http-request-services-demo.component.html +64 -0
  8. package/src/lib/http-request-services-demo/http-request-services-demo.component.scss +6 -0
  9. package/src/lib/http-request-services-demo/http-request-services-demo.component.ts +34 -0
  10. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.html +195 -0
  11. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.scss +17 -0
  12. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.ts +205 -0
  13. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.html +59 -0
  14. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.scss +60 -0
  15. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.ts +71 -0
  16. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.ts +28 -0
  17. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.html +10 -0
  18. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.scss +29 -0
  19. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.ts +99 -0
  20. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.ts +22 -0
  21. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.html +8 -0
  22. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.scss +19 -0
  23. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.ts +25 -0
  24. package/src/lib/http-request-services-demo/request-manager-demo/models/app-session.model.ts +30 -0
  25. package/src/lib/http-request-services-demo/request-manager-demo/models/app.model.ts +19 -0
  26. package/src/lib/http-request-services-demo/request-manager-demo/models/get-sample.model.ts +25 -0
  27. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.ts +19 -0
  28. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-details.ts +24 -0
  29. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.ts +30 -0
  30. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client.model.ts +49 -0
  31. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.ts +33 -0
  32. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.html +336 -0
  33. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.scss +24 -0
  34. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.ts +403 -0
  35. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.html +328 -0
  36. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.scss +24 -0
  37. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.ts +347 -0
  38. package/src/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.ts +88 -0
  39. package/src/lib/index.ts +3 -0
  40. package/src/lib/interceptors/credentials.interceptor.ts +18 -0
  41. package/{lib/interceptors/index.d.ts → src/lib/interceptors/index.ts} +2 -0
  42. package/src/lib/interceptors/models/error-settings.model.ts +22 -0
  43. package/src/lib/interceptors/proxy-debugger.interceptor.ts +46 -0
  44. package/src/lib/interceptors/request-error.interceptor.ts +65 -0
  45. package/src/lib/interceptors/request-header.interceptor.ts +58 -0
  46. package/src/lib/models/config-http-options.model.ts +42 -0
  47. package/src/lib/models/config-local-storage-options.model.ts +27 -0
  48. package/src/lib/models/config-options.model.ts +27 -0
  49. package/{lib/models/config-token.model.d.ts → src/lib/models/config-token.model.ts} +2 -1
  50. package/src/lib/models/data-type.enum.ts +5 -0
  51. package/src/lib/models/database-storage.model.ts +24 -0
  52. package/src/lib/models/index.ts +9 -0
  53. package/src/lib/models/retry-options.model.ts +22 -0
  54. package/src/lib/services/database-manager-services/database.manager.service.ts +193 -0
  55. package/src/lib/services/database-manager-services/db.storage.service.ts +191 -0
  56. package/{lib/services/database-manager-services/index.d.ts → src/lib/services/database-manager-services/index.ts} +1 -0
  57. package/src/lib/services/database-manager-services/models/table-schema.ts +35 -0
  58. package/{lib/services/index.d.ts → src/lib/services/index.ts} +4 -0
  59. package/src/lib/services/local-storage-manager-service/index.ts +2 -0
  60. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.spec.ts +71 -0
  61. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.ts +421 -0
  62. package/src/lib/services/local-storage-manager-service/models/global-store-options.model.ts +30 -0
  63. package/{lib/services/local-storage-manager-service/models/index.d.ts → src/lib/services/local-storage-manager-service/models/index.ts} +2 -1
  64. package/src/lib/services/local-storage-manager-service/models/setting-options.model.ts +30 -0
  65. package/src/lib/services/local-storage-manager-service/models/storage-data.model.ts +24 -0
  66. package/src/lib/services/local-storage-manager-service/models/storage-option.model.ts +29 -0
  67. package/src/lib/services/local-storage-manager-service/models/storage-type.enum.ts +5 -0
  68. package/src/lib/services/request-manager-services/README.md +268 -0
  69. package/src/lib/services/request-manager-services/http-manager.service.spec.ts +230 -0
  70. package/src/lib/services/request-manager-services/http-manager.service.ts +274 -0
  71. package/{lib/services/request-manager-services/index.d.ts → src/lib/services/request-manager-services/index.ts} +2 -0
  72. package/src/lib/services/request-manager-services/request.service.ts +261 -0
  73. package/src/lib/services/request-manager-services/rxjs-operators/countdown.ts +17 -0
  74. package/src/lib/services/request-manager-services/rxjs-operators/delay-retry.ts +16 -0
  75. package/src/lib/services/request-manager-services/rxjs-operators/request-polling.ts +21 -0
  76. package/src/lib/services/request-manager-services/rxjs-operators/request-streaming.ts +32 -0
  77. package/src/lib/services/request-manager-state-service/http-manager-state.store.ts +402 -0
  78. package/{lib/services/request-manager-state-service/index.d.ts → src/lib/services/request-manager-state-service/index.ts} +1 -0
  79. package/src/lib/services/request-manager-state-service/models/api-request.model.ts +50 -0
  80. package/{lib/services/request-manager-state-service/models/index.d.ts → src/lib/services/request-manager-state-service/models/index.ts} +1 -0
  81. package/src/lib/services/request-manager-state-service/models/request-options.model.ts +22 -0
  82. package/src/lib/services/utils/app.service.spec.ts +25 -0
  83. package/src/lib/services/utils/app.service.ts +21 -0
  84. package/src/lib/services/utils/encryption/README.md +79 -0
  85. package/src/lib/services/utils/encryption/asymmetrical-encryption.service.ts +282 -0
  86. package/src/lib/services/utils/encryption/encryption-test.service.ts +39 -0
  87. package/{lib/services/utils/encryption/index.d.ts → src/lib/services/utils/encryption/index.ts} +2 -0
  88. package/src/lib/services/utils/encryption/random.ts +69 -0
  89. package/src/lib/services/utils/encryption/symmetrical-encryption.service.ts +93 -0
  90. package/src/lib/services/utils/headers.service.spec.ts +80 -0
  91. package/src/lib/services/utils/headers.service.ts +18 -0
  92. package/{lib/services/utils/index.d.ts → src/lib/services/utils/index.ts} +2 -0
  93. package/src/lib/services/utils/object-merger.service.spec.ts +16 -0
  94. package/src/lib/services/utils/object-merger.service.ts +60 -0
  95. package/src/lib/services/utils/path-query.service.spec.ts +117 -0
  96. package/src/lib/services/utils/path-query.service.ts +69 -0
  97. package/src/lib/services/utils/utils.service.spec.ts +164 -0
  98. package/src/lib/services/utils/utils.service.ts +192 -0
  99. package/{public-api.d.ts → src/public-api.ts} +7 -0
  100. package/tsconfig.lib.json +32 -0
  101. package/tsconfig.lib.prod.json +10 -0
  102. package/tsconfig.spec.json +14 -0
  103. package/esm2022/http-request-manager.mjs +0 -5
  104. package/esm2022/lib/http-request-manager.module.mjs +0 -146
  105. package/esm2022/lib/http-request-services-demo/database-data-demo/database-data-demo.component.mjs +0 -71
  106. package/esm2022/lib/http-request-services-demo/http-request-services-demo.component.mjs +0 -41
  107. package/esm2022/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.mjs +0 -173
  108. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.mjs +0 -80
  109. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.mjs +0 -42
  110. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.mjs +0 -88
  111. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.mjs +0 -11
  112. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.mjs +0 -29
  113. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.mjs +0 -9
  114. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.mjs +0 -12
  115. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.mjs +0 -14
  116. package/esm2022/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.mjs +0 -315
  117. package/esm2022/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.mjs +0 -270
  118. package/esm2022/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.mjs +0 -67
  119. package/esm2022/lib/index.mjs +0 -4
  120. package/esm2022/lib/interceptors/credentials.interceptor.mjs +0 -14
  121. package/esm2022/lib/interceptors/index.mjs +0 -5
  122. package/esm2022/lib/interceptors/models/error-settings.model.mjs +0 -10
  123. package/esm2022/lib/interceptors/proxy-debugger.interceptor.mjs +0 -47
  124. package/esm2022/lib/interceptors/request-error.interceptor.mjs +0 -49
  125. package/esm2022/lib/interceptors/request-header.interceptor.mjs +0 -41
  126. package/esm2022/lib/models/config-http-options.model.mjs +0 -18
  127. package/esm2022/lib/models/config-local-storage-options.model.mjs +0 -12
  128. package/esm2022/lib/models/config-options.model.mjs +0 -12
  129. package/esm2022/lib/models/config-token.model.mjs +0 -8
  130. package/esm2022/lib/models/data-type.enum.mjs +0 -7
  131. package/esm2022/lib/models/database-storage.model.mjs +0 -10
  132. package/esm2022/lib/models/index.mjs +0 -7
  133. package/esm2022/lib/models/retry-options.model.mjs +0 -10
  134. package/esm2022/lib/services/database-manager-services/database.manager.service.mjs +0 -119
  135. package/esm2022/lib/services/database-manager-services/db.storage.service.mjs +0 -143
  136. package/esm2022/lib/services/database-manager-services/index.mjs +0 -4
  137. package/esm2022/lib/services/database-manager-services/models/table-schema.mjs +0 -20
  138. package/esm2022/lib/services/index.mjs +0 -6
  139. package/esm2022/lib/services/local-storage-manager-service/index.mjs +0 -3
  140. package/esm2022/lib/services/local-storage-manager-service/local-storage-manager.service.mjs +0 -302
  141. package/esm2022/lib/services/local-storage-manager-service/models/global-store-options.model.mjs +0 -13
  142. package/esm2022/lib/services/local-storage-manager-service/models/index.mjs +0 -6
  143. package/esm2022/lib/services/local-storage-manager-service/models/setting-options.model.mjs +0 -13
  144. package/esm2022/lib/services/local-storage-manager-service/models/storage-data.model.mjs +0 -10
  145. package/esm2022/lib/services/local-storage-manager-service/models/storage-option.model.mjs +0 -12
  146. package/esm2022/lib/services/local-storage-manager-service/models/storage-type.enum.mjs +0 -7
  147. package/esm2022/lib/services/request-manager-services/http-manager.service.mjs +0 -207
  148. package/esm2022/lib/services/request-manager-services/index.mjs +0 -5
  149. package/esm2022/lib/services/request-manager-services/request.service.mjs +0 -189
  150. package/esm2022/lib/services/request-manager-services/rxjs-operators/countdown.mjs +0 -9
  151. package/esm2022/lib/services/request-manager-services/rxjs-operators/delay-retry.mjs +0 -10
  152. package/esm2022/lib/services/request-manager-services/rxjs-operators/index.mjs +0 -5
  153. package/esm2022/lib/services/request-manager-services/rxjs-operators/request-polling.mjs +0 -14
  154. package/esm2022/lib/services/request-manager-services/rxjs-operators/request-streaming.mjs +0 -19
  155. package/esm2022/lib/services/request-manager-state-service/http-manager-state.store.mjs +0 -267
  156. package/esm2022/lib/services/request-manager-state-service/index.mjs +0 -3
  157. package/esm2022/lib/services/request-manager-state-service/models/api-request.model.mjs +0 -20
  158. package/esm2022/lib/services/request-manager-state-service/models/index.mjs +0 -3
  159. package/esm2022/lib/services/request-manager-state-service/models/request-options.model.mjs +0 -10
  160. package/esm2022/lib/services/utils/app.service.mjs +0 -26
  161. package/esm2022/lib/services/utils/encryption/asymmetrical-encryption.service.mjs +0 -186
  162. package/esm2022/lib/services/utils/encryption/encryption-test.service.mjs +0 -35
  163. package/esm2022/lib/services/utils/encryption/index.mjs +0 -4
  164. package/esm2022/lib/services/utils/encryption/random.mjs +0 -52
  165. package/esm2022/lib/services/utils/encryption/symmetrical-encryption.service.mjs +0 -77
  166. package/esm2022/lib/services/utils/headers.service.mjs +0 -21
  167. package/esm2022/lib/services/utils/index.mjs +0 -6
  168. package/esm2022/lib/services/utils/object-merger.service.mjs +0 -50
  169. package/esm2022/lib/services/utils/path-query.service.mjs +0 -54
  170. package/esm2022/lib/services/utils/utils.service.mjs +0 -155
  171. package/esm2022/public-api.mjs +0 -11
  172. package/fesm2022/http-request-manager.mjs +0 -3444
  173. package/fesm2022/http-request-manager.mjs.map +0 -1
  174. package/http-request-manager-15.0.24.tgz +0 -0
  175. package/index.d.ts +0 -5
  176. package/lib/http-request-manager.module.d.ts +0 -33
  177. package/lib/http-request-services-demo/database-data-demo/database-data-demo.component.d.ts +0 -19
  178. package/lib/http-request-services-demo/http-request-services-demo.component.d.ts +0 -24
  179. package/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.d.ts +0 -56
  180. package/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.d.ts +0 -26
  181. package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.d.ts +0 -13
  182. package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.d.ts +0 -27
  183. package/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.d.ts +0 -12
  184. package/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.d.ts +0 -16
  185. package/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.d.ts +0 -8
  186. package/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.d.ts +0 -14
  187. package/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.d.ts +0 -14
  188. package/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.d.ts +0 -107
  189. package/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.d.ts +0 -122
  190. package/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.d.ts +0 -15
  191. package/lib/index.d.ts +0 -3
  192. package/lib/interceptors/credentials.interceptor.d.ts +0 -8
  193. package/lib/interceptors/models/error-settings.model.d.ts +0 -10
  194. package/lib/interceptors/proxy-debugger.interceptor.d.ts +0 -12
  195. package/lib/interceptors/request-error.interceptor.d.ts +0 -10
  196. package/lib/interceptors/request-header.interceptor.d.ts +0 -15
  197. package/lib/models/config-http-options.model.d.ts +0 -21
  198. package/lib/models/config-local-storage-options.model.d.ts +0 -13
  199. package/lib/models/config-options.model.d.ts +0 -12
  200. package/lib/models/data-type.enum.d.ts +0 -5
  201. package/lib/models/database-storage.model.d.ts +0 -10
  202. package/lib/models/index.d.ts +0 -6
  203. package/lib/models/retry-options.model.d.ts +0 -10
  204. package/lib/services/database-manager-services/database.manager.service.d.ts +0 -31
  205. package/lib/services/database-manager-services/db.storage.service.d.ts +0 -26
  206. package/lib/services/database-manager-services/models/table-schema.d.ts +0 -11
  207. package/lib/services/local-storage-manager-service/index.d.ts +0 -2
  208. package/lib/services/local-storage-manager-service/local-storage-manager.service.d.ts +0 -86
  209. package/lib/services/local-storage-manager-service/models/global-store-options.model.d.ts +0 -15
  210. package/lib/services/local-storage-manager-service/models/setting-options.model.d.ts +0 -15
  211. package/lib/services/local-storage-manager-service/models/storage-data.model.d.ts +0 -10
  212. package/lib/services/local-storage-manager-service/models/storage-option.model.d.ts +0 -13
  213. package/lib/services/local-storage-manager-service/models/storage-type.enum.d.ts +0 -5
  214. package/lib/services/request-manager-services/http-manager.service.d.ts +0 -41
  215. package/lib/services/request-manager-services/request.service.d.ts +0 -27
  216. package/lib/services/request-manager-services/rxjs-operators/countdown.d.ts +0 -2
  217. package/lib/services/request-manager-services/rxjs-operators/delay-retry.d.ts +0 -2
  218. package/lib/services/request-manager-services/rxjs-operators/request-polling.d.ts +0 -7
  219. package/lib/services/request-manager-services/rxjs-operators/request-streaming.d.ts +0 -2
  220. package/lib/services/request-manager-state-service/http-manager-state.store.d.ts +0 -51
  221. package/lib/services/request-manager-state-service/models/api-request.model.d.ts +0 -27
  222. package/lib/services/request-manager-state-service/models/request-options.model.d.ts +0 -10
  223. package/lib/services/utils/app.service.d.ts +0 -8
  224. package/lib/services/utils/encryption/asymmetrical-encryption.service.d.ts +0 -17
  225. package/lib/services/utils/encryption/encryption-test.service.d.ts +0 -10
  226. package/lib/services/utils/encryption/random.d.ts +0 -7
  227. package/lib/services/utils/encryption/symmetrical-encryption.service.d.ts +0 -14
  228. package/lib/services/utils/headers.service.d.ts +0 -10
  229. package/lib/services/utils/object-merger.service.d.ts +0 -12
  230. package/lib/services/utils/path-query.service.d.ts +0 -11
  231. package/lib/services/utils/utils.service.d.ts +0 -24
  232. /package/{lib/services/request-manager-services/rxjs-operators/index.d.ts → src/lib/services/request-manager-services/rxjs-operators/index.ts} +0 -0
@@ -0,0 +1,88 @@
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
+ providedIn: 'root'
11
+ })
12
+ export class StateManagerDemoService extends HTTPManagerStateService<any> {
13
+
14
+ constructor() {
15
+ super(
16
+ ApiRequest.adapt({
17
+ server: "",
18
+ path: [],
19
+ headers: {},
20
+ adapter: ClientInfo.adapt,
21
+ mapper: ClientInfoMapper.adapt,
22
+ stream: false,
23
+ }),
24
+ DataType.ARRAY,
25
+ DatabaseStorage.adapt()
26
+ )
27
+ }
28
+
29
+ setAPIOptions(apiOptions: ApiRequest, dataType: DataType, database?: DatabaseStorage) {
30
+ this.setApiRequestOptions(apiOptions, dataType, database)
31
+ }
32
+
33
+ getClients() {
34
+
35
+ // const headers = {
36
+ // auth: "sample-auth-token"
37
+ // }
38
+ // const sampleOptions = RequestOptions.adapt({ path: ["id", 12], headers, sample: true })
39
+ this.fetchRecords()
40
+
41
+ }
42
+
43
+ createClient(data: any) {
44
+
45
+ // const headers = {
46
+ // auth: "sample-auth-token"
47
+ // }
48
+
49
+ // const sampleOptions = RequestOptions.adapt({ path: ["id", 12], headers, sample: true })
50
+ this.createRecord(data)
51
+
52
+ }
53
+
54
+ updateClient(data: ClientInfo) {
55
+
56
+ // const headers = {
57
+ // auth: "sample-auth-token"
58
+ // }
59
+ data.id = 1031
60
+ const sampleOptions = RequestOptions.adapt({ path: [data.id] })
61
+ this.updateRecord(data, sampleOptions)
62
+
63
+ }
64
+
65
+ deleteClient(data: ClientInfo) {
66
+
67
+ // const headers = {
68
+ // auth: "sample-auth-token"
69
+ // }
70
+
71
+ data.id = 1031
72
+ const sampleOptions = RequestOptions.adapt({ path: [data.id] })
73
+ this.deleteRecord(sampleOptions)
74
+
75
+ }
76
+
77
+ streamRequest() {
78
+
79
+ const headers = {
80
+ auth: "sample-auth-token"
81
+ }
82
+
83
+ // const sampleOptions = RequestOptions.adapt({ path: [1], headers })
84
+ this.fetchStream()
85
+
86
+ }
87
+
88
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./services/index"
2
+ export * from "./interceptors/index"
3
+ export * from "./models/index"
@@ -0,0 +1,18 @@
1
+ import { Injectable } from '@angular/core';
2
+ import {
3
+ HttpEvent, HttpInterceptor, HttpHandler, HttpRequest
4
+ } from '@angular/common/http';
5
+
6
+ import { Observable } from 'rxjs';
7
+
8
+ @Injectable()
9
+ export class WithCredentialsInterceptor implements HttpInterceptor {
10
+
11
+ intercept(req: HttpRequest<any>, next: HttpHandler):
12
+ Observable<HttpEvent<any>> {
13
+
14
+ req = req.clone({ withCredentials: true })
15
+
16
+ return next.handle(req);
17
+ }
18
+ }
@@ -1,4 +1,6 @@
1
+
1
2
  export * from "./models/error-settings.model";
3
+
2
4
  export * from "./credentials.interceptor";
3
5
  export * from "./request-header.interceptor";
4
6
  export * from "./request-error.interceptor";
@@ -0,0 +1,22 @@
1
+ export interface ErrorDisplaySettingsInterface {
2
+ displayTime: number
3
+ position: string
4
+ }
5
+
6
+ export class ErrorDisplaySettings implements ErrorDisplaySettingsInterface {
7
+
8
+ constructor(
9
+ public displayTime = 3 * 1000,
10
+ public position = 'top'
11
+ ) {}
12
+
13
+ static adapt(item?: any): ErrorDisplaySettings {
14
+
15
+ return new ErrorDisplaySettings(
16
+ (item?.displayTime) ? item.displayTime * 1000 : 3 * 1000,
17
+ item?.position,
18
+ )
19
+
20
+ }
21
+
22
+ }
@@ -0,0 +1,46 @@
1
+ import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
2
+ import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
3
+ import { Observable } from 'rxjs';
4
+
5
+ export const PROXY_CONFIG = new InjectionToken<Record<string, any>>('PROXY_CONFIG');
6
+
7
+ @Injectable()
8
+ export class ProxyDebuggerInterceptor implements HttpInterceptor {
9
+
10
+ constructor(@Optional() @Inject(PROXY_CONFIG) private proxyConfig: Record<string, any>) {}
11
+
12
+ intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
13
+
14
+ if (!this.proxyConfig) {
15
+ return next.handle(req);
16
+ }
17
+
18
+ const headers = req.headers.keys().reduce((acc, key) => {
19
+ acc[key] = req.headers.get(key) || '';
20
+ return acc;
21
+ }, {} as Record<string, string>);
22
+
23
+ for (const proxyPath in this.proxyConfig) {
24
+ if (this.proxyConfig.hasOwnProperty(proxyPath)) {
25
+ const proxyDetails = this.proxyConfig[proxyPath];
26
+ const regex = new RegExp('^' + proxyPath.replace('/', '').replace('*', '(.*)'));
27
+
28
+ if (regex.test(req.url)) {
29
+ const target = proxyDetails.target;
30
+ const endpoint = req.url.replace(regex, '$1');
31
+ const actualPath = target + '/' + endpoint;
32
+
33
+ console.log('Request Proxied:', {
34
+ requestUrl: req.url,
35
+ requestPayload: req.body,
36
+ headers: headers,
37
+ proxyPath: proxyPath,
38
+ actualPath: actualPath,
39
+ });
40
+ }
41
+ }
42
+ }
43
+
44
+ return next.handle(req);
45
+ }
46
+ }
@@ -0,0 +1,65 @@
1
+ import { inject, Injectable } from '@angular/core'
2
+ import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpErrorResponse } from '@angular/common/http'
3
+ import { Observable, catchError, throwError } from 'rxjs'
4
+
5
+ import { ToastMessageDisplayService, ToastDisplay, ToastColors } from 'toast-message-display'
6
+
7
+ @Injectable()
8
+ export class RequestErrorInterceptor implements HttpInterceptor {
9
+
10
+ toastMessage = inject(ToastMessageDisplayService)
11
+
12
+ intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
13
+
14
+ return next.handle(req).pipe(
15
+
16
+ catchError((error: HttpErrorResponse) => {
17
+
18
+ const displayError = ToastDisplay.adapt({
19
+ message: 'This is a toast message. This is an Error!!',
20
+ action: 'OK',
21
+ color: ToastColors.SUCCESS,
22
+ icon: 'info',
23
+ duration: 5 * 1000, //5 seconds
24
+ })
25
+
26
+ if (error.status >= 400 && error.status < 500) {
27
+
28
+ displayError.color = ToastColors.WARN
29
+ displayError.message = error.error || `${error.status}: ${error.statusText}`
30
+
31
+ console.error('Client Error:', {
32
+ status: error.status,
33
+ message: error.message,
34
+ error: error.error,
35
+ text: error.statusText,
36
+ })
37
+
38
+ this.toastMessage.toastMessage(displayError)
39
+
40
+ } else if (error.status >= 500) {
41
+
42
+ displayError.color = ToastColors.ERROR
43
+ displayError.message = error.error || `${error.status}: ${error.statusText}`
44
+
45
+ console.error('Server Error:', {
46
+ status: error.status,
47
+ message: error.message,
48
+ error: error.error,
49
+ text: error.statusText,
50
+ })
51
+
52
+ this.toastMessage.toastMessage(displayError)
53
+
54
+ }
55
+
56
+ return throwError(() => error)
57
+
58
+ })
59
+
60
+ )
61
+ }
62
+
63
+ }
64
+
65
+
@@ -0,0 +1,58 @@
1
+ import { Injectable } from '@angular/core';
2
+ import {
3
+ HttpRequest,
4
+ HttpHandler,
5
+ HttpEvent,
6
+ HttpInterceptor,
7
+ } from '@angular/common/http';
8
+ import { Observable, Subscription } from 'rxjs';
9
+ import { LangChangeEvent, TranslateService } from '@ngx-translate/core';
10
+
11
+ @Injectable()
12
+ export class RequestHeadersInterceptor implements HttpInterceptor {
13
+
14
+ subscriptions = new Subscription()
15
+ language = 'en-CA'
16
+
17
+ get currentDate() {
18
+
19
+ const date = new Date()
20
+
21
+ const year = date.getFullYear()
22
+ const month = String(date.getMonth() + 1).padStart(2, '0')
23
+ const day = String(date.getDate()).padStart(2, '0')
24
+
25
+ return `${year}-${month}-${day}`
26
+
27
+ }
28
+
29
+ constructor(
30
+ private translate: TranslateService
31
+ ) {
32
+ this.subscriptions.add(
33
+ this.translate.onLangChange
34
+ .subscribe((params: LangChangeEvent) => {
35
+ this.language = `${params.lang}-CA`
36
+ })
37
+ )
38
+ }
39
+
40
+ intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
41
+
42
+ request = request.clone({
43
+ setHeaders: {
44
+ 'Content-Type': 'application/json',
45
+ 'Accept-Language': this.language || 'en-CA',
46
+ 'Current-Date': this.currentDate
47
+ }
48
+ })
49
+
50
+ return next.handle(request)
51
+
52
+ }
53
+
54
+ ngOnDestroy() {
55
+ this.subscriptions.unsubscribe()
56
+ }
57
+ }
58
+
@@ -0,0 +1,42 @@
1
+ import { RetryOptions } from "./retry-options.model"
2
+
3
+ export interface ConfigHTTPOptionsInterface {
4
+ server: string
5
+ path?: any[]
6
+ headers?: any
7
+ polling?: number // seconds (undefined | 0 = none)
8
+ retry?: RetryOptions
9
+ stream?: boolean
10
+ displayError?: boolean
11
+ }
12
+
13
+ export class ConfigHTTPOptions implements ConfigHTTPOptionsInterface {
14
+
15
+ constructor(
16
+ public server = '',
17
+ public path?: any[],
18
+ public headers?: any,
19
+ public polling?: number,
20
+ public retry?: RetryOptions,
21
+ public stream?: boolean,
22
+ public displayError?: boolean,
23
+ ) {}
24
+
25
+ static adapt(item?: any): ConfigHTTPOptions {
26
+
27
+ const server = Array.isArray(item?.server) ? item.server.join('/') : item?.server || '';
28
+ const retryOptions = item?.retry ? RetryOptions.adapt(item.retry) : RetryOptions.adapt();
29
+
30
+ return new ConfigHTTPOptions(
31
+ server,
32
+ (item?.path) ? item.path : [],
33
+ (item?.headers) ? item.headers : {},
34
+ item?.polling ? Math.floor(item.polling) : 0,
35
+ retryOptions,
36
+ (item?.stream) ? item.stream : false,
37
+ (item?.displayError) ? item.displayError : false,
38
+ )
39
+
40
+ }
41
+
42
+ }
@@ -0,0 +1,27 @@
1
+ import { SettingOptions } from "../services"
2
+
3
+ export interface LocalStorageOptionsInterface {
4
+ storageName?: string
5
+ storageSettingsName?: string
6
+ options?: SettingOptions,
7
+ }
8
+
9
+ export class LocalStorageOptions implements LocalStorageOptionsInterface {
10
+
11
+ constructor(
12
+ public storageName?: string,
13
+ public storageSettingsName?: string,
14
+ public options?: SettingOptions,
15
+ ) {}
16
+
17
+ static adapt(item?: any): LocalStorageOptions {
18
+
19
+ return new LocalStorageOptions(
20
+ (item?.storageName) ? item.storageName : 'storage',
21
+ (item?.storageSettingsName) ? item.storageSettingsName : 'global-storage',
22
+ (item?.options) ? SettingOptions.adapt(item.options) : SettingOptions.adapt(),
23
+ )
24
+
25
+ }
26
+
27
+ }
@@ -0,0 +1,27 @@
1
+ import { ConfigHTTPOptions } from "./config-http-options.model";
2
+ import { LocalStorageOptions } from "./config-local-storage-options.model";
3
+
4
+ export interface ConfigOptionsInterface {
5
+ httpRequestOptions?: ConfigHTTPOptions
6
+ LocalStorageOptions?: LocalStorageOptions
7
+ // DatabaseOptions: any
8
+ }
9
+
10
+ export class ConfigOptions implements ConfigOptionsInterface {
11
+
12
+ constructor(
13
+ public httpRequestOptions?: ConfigHTTPOptions,
14
+ public LocalStorageOptions?: LocalStorageOptions,
15
+ // public DatabaseOptions?: any,
16
+ ) {}
17
+
18
+ static adapt(item?: any): ConfigOptions {
19
+ return new ConfigOptions(
20
+ (item?.httpRequestOptions) ? ConfigHTTPOptions.adapt(item.httpRequestOptions) : undefined,
21
+ (item?.LocalStorageOptions) ? LocalStorageOptions.adapt(item.LocalStorageOptions) : undefined,
22
+ // item?.DatabaseOptions,
23
+ )
24
+
25
+ }
26
+
27
+ }
@@ -1,8 +1,9 @@
1
1
  import { InjectionToken } from "@angular/core";
2
2
  import { ConfigOptions } from "./config-options.model";
3
+
3
4
  /**
4
5
  * An injection token that provides the configuration settings for the application.
5
6
  * This token can be used to inject the `ConfigSettings` instance into components or services
6
7
  * that require access to the application configuration.
7
8
  */
8
- export declare const CONFIG_SETTINGS_TOKEN: InjectionToken<ConfigOptions>;
9
+ export const CONFIG_SETTINGS_TOKEN = new InjectionToken<ConfigOptions>('http.config');
@@ -0,0 +1,5 @@
1
+ export enum DataType {
2
+ ANY = 0,
3
+ ARRAY,
4
+ OBJECT
5
+ }
@@ -0,0 +1,24 @@
1
+ import { DataType } from "./data-type.enum"
2
+
3
+ export interface DatabaseStorageInterface {
4
+ table: string
5
+ expiresIn: string
6
+ }
7
+
8
+ export class DatabaseStorage implements DatabaseStorageInterface {
9
+
10
+ constructor(
11
+ public table = '',
12
+ public expiresIn: '',
13
+ ) {}
14
+
15
+ static adapt(item?: any): DatabaseStorage {
16
+
17
+ return new DatabaseStorage(
18
+ item?.table,
19
+ item?.expiresIn,
20
+ )
21
+
22
+ }
23
+
24
+ }
@@ -0,0 +1,9 @@
1
+ export * from './database-storage.model'
2
+ export * from './retry-options.model'
3
+
4
+ export * from './data-type.enum'
5
+
6
+ export * from './config-http-options.model'
7
+ export * from './config-local-storage-options.model'
8
+ export * from './config-options.model'
9
+
@@ -0,0 +1,22 @@
1
+ export interface RetryOptionsInterface {
2
+ times?: number // total request to be made including initial request
3
+ delay?: number // seconds (<= 3 default 3 seconds)
4
+ }
5
+
6
+ export class RetryOptions implements RetryOptionsInterface {
7
+
8
+ constructor(
9
+ public times = 0,
10
+ public delay = 3,
11
+ ) {}
12
+
13
+ static adapt(item?: any): RetryOptions {
14
+
15
+ return new RetryOptions(
16
+ item?.times,
17
+ item?.delay
18
+ )
19
+
20
+ }
21
+
22
+ }
@@ -0,0 +1,193 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { DbService } from './db.storage.service';
3
+
4
+ import { TableSchemaDef } from './models/table-schema';
5
+ import { EMPTY, from, Observable } from 'rxjs';
6
+ import { map, mergeMap, switchMap } from 'rxjs/operators';
7
+
8
+ @Injectable({
9
+ providedIn: 'root'
10
+ })
11
+ export class DatabaseManagerService extends DbService {
12
+
13
+ constructor() {
14
+ super()
15
+ this.createNewDatabase()
16
+ }
17
+
18
+ getDatabaseTables() {
19
+ return from(this.DBOpened()).pipe(
20
+ map(() => this.db.tables.map(item => item.name))
21
+ )
22
+ }
23
+
24
+ hasDatabaseTable(table: string): Observable<boolean> {
25
+ return from(this.DBOpened()).pipe(
26
+ map(() => {
27
+ return this.tableExists(this.clean(table))
28
+ })
29
+ )
30
+ }
31
+
32
+ getDatabaseTable(table: string): Observable<any> {
33
+ return from(this.DBOpened()).pipe(
34
+ map((res) => {
35
+ this.hasDatabase().then((res) => {
36
+
37
+ const tables = this.db.tables
38
+ const found = tables.find(item => item.name === this.clean(table)) || null
39
+
40
+ if(!found) {
41
+ console.warn('No Such Table:', this.clean(table))
42
+ return
43
+ } else {
44
+ return found
45
+ }
46
+
47
+ })
48
+ })
49
+ )
50
+ }
51
+
52
+ getDatabaseTableSchema(table: string): Observable<string[]> {
53
+
54
+ return from(this.DBOpened()).pipe(
55
+ mergeMap((res) => this.getDatabaseTable(table)),
56
+ map((dbTable: any) => {
57
+ if(!dbTable) return []
58
+ const cols = dbTable.schema.indexes.map((col: any) => col.name)
59
+ const pri = dbTable.schema.primKey.name
60
+ return [pri, ...cols]
61
+ })
62
+ )
63
+
64
+ }
65
+
66
+ createDatabaseTable(tableDef: TableSchemaDef) {
67
+ this.createTable(tableDef.table, tableDef.schema)
68
+ return from(this.DBOpened())
69
+ }
70
+
71
+ updateDatabaseTableSchema(tableDef: TableSchemaDef) {
72
+
73
+ }
74
+
75
+ // CRUD
76
+ findTableRecords(table: string, column: string, value: any) {
77
+
78
+ }
79
+
80
+ findTableRecord(table: string, column: string, value: any) {
81
+
82
+ }
83
+
84
+ getTableRecords(table: string) {
85
+
86
+ }
87
+
88
+ getTableRecord(table: string, id: number) {
89
+
90
+ }
91
+
92
+ createTableRecord(table: string, record: any) {
93
+ return this.createTableRecords(table, [record])
94
+ .pipe(
95
+ map((item: any) => item ? item[0] : null))
96
+ }
97
+
98
+ createTableRecords(table: string, records: any[]) {
99
+
100
+ return this.getDatabaseTable(table).pipe(
101
+
102
+ switchMap((tableData: any) => {
103
+
104
+ if(!tableData) return EMPTY
105
+
106
+ return this.getDatabaseTableSchema(table).pipe(
107
+
108
+ map((schema: string[]) => {
109
+
110
+ const insertRecords = records.map((record: any) => {
111
+
112
+ const objectFromSchema: { [key: string]: any } = {}
113
+
114
+ schema.forEach((field: string) => {
115
+ const data = (record as any)[field] ?? null
116
+ objectFromSchema[field] = data
117
+ })
118
+
119
+ return objectFromSchema
120
+
121
+ })
122
+
123
+ tableData.bulkPut(insertRecords)
124
+ return insertRecords
125
+
126
+ })
127
+
128
+ )
129
+
130
+ })
131
+
132
+ )
133
+
134
+ }
135
+
136
+ updateTableRecord(table: string, record: any) {
137
+ return this.updateTableRecords(table, [record])
138
+ .pipe(
139
+ map(item => item.length > 0 ? item[0] : null)
140
+ )
141
+ }
142
+
143
+ updateTableRecords(table: string, records: any[]) {
144
+
145
+ return this.getDatabaseTable(table).pipe(
146
+
147
+ switchMap((tableData: any) => {
148
+
149
+ return this.getDatabaseTableSchema(table).pipe(
150
+
151
+ map((schema: string[]) => {
152
+
153
+ const insertRecords = records.map((record: any) => {
154
+
155
+ const objectFromSchema: { [key: string]: any } = {}
156
+
157
+ schema.forEach((field: string) => {
158
+ const data = (record as any)[field] ?? null
159
+ objectFromSchema[field] = data
160
+ })
161
+
162
+ return objectFromSchema
163
+
164
+ })
165
+
166
+ tableData.bulkPut(insertRecords).then(() => console.log('Updated DB'))
167
+ return insertRecords
168
+
169
+ })
170
+
171
+ )
172
+
173
+ })
174
+
175
+ )
176
+
177
+ }
178
+
179
+ deleteTableRecord<T>(table: string, id: number) {
180
+
181
+ }
182
+
183
+ private clean(str: string): string {
184
+ const cleanStr = str
185
+ .replace(/[^a-zA-Z0-9\s]/g, '_') // Replace non-alphanumeric characters except spaces with underscores
186
+ .replace(/\s+/g, '_') // Replace spaces with underscores
187
+ .toLowerCase() // Convert to lowercase
188
+ .trim(); // Trim leading or trailing spaces
189
+
190
+ return cleanStr;
191
+ }
192
+
193
+ }