@futdevpro/fsm-dynamo 1.15.18 → 1.15.21

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 (534) hide show
  1. package/.cursor/rules/__assistant_guide.mdc +30 -30
  2. package/.cursor/rules/_ag_backend-structure.mdc +85 -85
  3. package/.cursor/rules/_ag_backend.mdc +16 -16
  4. package/.cursor/rules/_ag_frontend-structure.mdc +86 -86
  5. package/.cursor/rules/_ag_frontend.mdc +39 -39
  6. package/.cursor/rules/_ag_import-rules.mdc +44 -44
  7. package/.cursor/rules/_ag_naming.mdc +115 -115
  8. package/.cursor/rules/_ag_should-be.mdc +6 -6
  9. package/.cursor/rules/ai_development_guide.md +60 -60
  10. package/.cursor/rules/cursor-rules.md +160 -160
  11. package/.cursor/rules/default-command.mdc +464 -464
  12. package/.cursor/rules/error_code_pattern.md +39 -39
  13. package/.cursor/rules/saved rule mcp server use.md +15 -15
  14. package/.dynamo/pipeline.cicd.config.json +128 -128
  15. package/.github/workflows/main.yml +433 -433
  16. package/.vscode/settings.json +11 -11
  17. package/LICENSE +21 -21
  18. package/__documentations/2026-06-01-dc-rev-fsm-results.json +17445 -0
  19. package/__documentations/2026-06-01-fr047-fc-foundation.md +48 -0
  20. package/__documentations/2026-06-01-fr047-fr048-code-review-findings.json +159 -0
  21. package/__documentations/2026-06-01-fr047-fr048-code-review.md +153 -0
  22. package/_review_tmp/r.json +17445 -0
  23. package/build/_enums/error-level.enum.d.ts +14 -1
  24. package/build/_enums/error-level.enum.d.ts.map +1 -1
  25. package/build/_enums/error-level.enum.js +13 -0
  26. package/build/_enums/error-level.enum.js.map +1 -1
  27. package/build/_models/data-models/errors.data-model.d.ts +51 -0
  28. package/build/_models/data-models/errors.data-model.d.ts.map +1 -1
  29. package/build/_models/data-models/errors.data-model.js +39 -0
  30. package/build/_models/data-models/errors.data-model.js.map +1 -1
  31. package/build/_modules/socket/_models/sck-socket-event.control-model.js +1 -1
  32. package/eslint.config.js +4 -4
  33. package/nodemon.json +22 -22
  34. package/package.json +11 -11
  35. package/scripts/crypto/CRYPTO-STABILITY-SOLUTION.md +196 -196
  36. package/scripts/crypto/README.md +113 -113
  37. package/scripts/crypto/demo-crypto-stability.js +120 -120
  38. package/scripts/crypto/stress-test-crypto.js +379 -379
  39. package/scripts/run-coverage-tests.js +24 -24
  40. package/spec/support/helpers/ts-node-helper.js +9 -9
  41. package/spec/support/jasmine.coverage.json +23 -23
  42. package/spec/support/jasmine.json +24 -24
  43. package/src/_collections/constants/data-sizes.const.ts +40 -40
  44. package/src/_collections/constants/error-defaults.const.ts +20 -20
  45. package/src/_collections/constants/global-settings.const.ts +24 -24
  46. package/src/_collections/constants/numbers.const.ts +40 -40
  47. package/src/_collections/constants/times.const.ts +45 -45
  48. package/src/_collections/utils/array.util.spec.ts +306 -306
  49. package/src/_collections/utils/array.util.ts +813 -813
  50. package/src/_collections/utils/async.util.spec.ts +354 -354
  51. package/src/_collections/utils/async.util.ts +197 -197
  52. package/src/_collections/utils/data.util.spec.ts +345 -345
  53. package/src/_collections/utils/data.util.ts +226 -226
  54. package/src/_collections/utils/json-error-helper.util.spec.ts +521 -521
  55. package/src/_collections/utils/json-error-helper.util.ts +301 -301
  56. package/src/_collections/utils/log.util.spec.ts +975 -975
  57. package/src/_collections/utils/log.util.ts +665 -665
  58. package/src/_collections/utils/math/box-bounds.spec.ts +73 -73
  59. package/src/_collections/utils/math/box-bounds.util.ts +183 -183
  60. package/src/_collections/utils/math/math.util.spec.ts +94 -94
  61. package/src/_collections/utils/math/math.util.ts +141 -141
  62. package/src/_collections/utils/math/random.util.spec.ts +82 -82
  63. package/src/_collections/utils/math/random.util.ts +139 -139
  64. package/src/_collections/utils/math/trigonometry.util.spec.ts +57 -57
  65. package/src/_collections/utils/math/trigonometry.util.ts +102 -102
  66. package/src/_collections/utils/math/vector2.util.spec.ts +94 -94
  67. package/src/_collections/utils/math/vector2.util.ts +653 -653
  68. package/src/_collections/utils/object.util.spec.ts +646 -646
  69. package/src/_collections/utils/regex/password-regex.util.spec.ts +51 -51
  70. package/src/_collections/utils/regex/password-regex.util.ts +65 -65
  71. package/src/_collections/utils/regex/regex.util.spec.ts +42 -42
  72. package/src/_collections/utils/regex/regex.util.ts +6 -6
  73. package/src/_collections/utils/regex/username-regex.util.spec.ts +61 -61
  74. package/src/_collections/utils/regex/username-regex.util.ts +35 -35
  75. package/src/_collections/utils/round-list.util.spec.ts +79 -79
  76. package/src/_collections/utils/round-list.util.ts +162 -162
  77. package/src/_collections/utils/stack.util.spec.ts +372 -372
  78. package/src/_collections/utils/stack.util.ts +164 -164
  79. package/src/_collections/utils/string-case.util.spec.ts +441 -441
  80. package/src/_collections/utils/string-case.util.ts +362 -362
  81. package/src/_collections/utils/string.util.spec.ts +975 -975
  82. package/src/_collections/utils/string.util.ts +449 -449
  83. package/src/_collections/utils/time.util.spec.ts +50 -50
  84. package/src/_collections/utils/time.util.ts +481 -481
  85. package/src/_collections/utils/type-cloning-facility.util.spec.ts +51 -51
  86. package/src/_collections/utils/type-cloning-facility.util.ts +168 -168
  87. package/src/_collections/utils/utilities.util.spec.ts +201 -201
  88. package/src/_collections/utils/utilities.util.ts +68 -68
  89. package/src/_collections/utils/uuid.util.spec.ts +30 -30
  90. package/src/_collections/utils/uuid.util.ts +50 -50
  91. package/src/_enums/basic-property-type.enum.ts +20 -20
  92. package/src/_enums/data-model-type.enum.ts +29 -29
  93. package/src/_enums/environment-flag.enum.ts +28 -28
  94. package/src/_enums/error-level.enum.ts +43 -28
  95. package/src/_enums/http/http-call-type.enum.ts +43 -43
  96. package/src/_enums/http/http-event-type.enum.ts +40 -40
  97. package/src/_enums/http/http-response-type.enum.ts +18 -18
  98. package/src/_enums/log-style.enum.ts +44 -44
  99. package/src/_enums/server-connection-status.enum.ts +6 -6
  100. package/src/_enums/time/day-of-week.enum.ts +55 -55
  101. package/src/_enums/time/month.enum.ts +25 -25
  102. package/src/_enums/time/relative-date.enum.ts +24 -24
  103. package/src/_models/control-models/data-model-params.control-model.spec.ts +85 -85
  104. package/src/_models/control-models/data-model-params.control-model.ts +300 -300
  105. package/src/_models/control-models/data-property-params.control-model.spec.ts +93 -93
  106. package/src/_models/control-models/data-property-params.control-model.ts +201 -201
  107. package/src/_models/control-models/error.control-model.spec.ts +912 -912
  108. package/src/_models/control-models/error.control-model.ts +1215 -1215
  109. package/src/_models/control-models/http/http-error-response.control-model.spec.ts +116 -116
  110. package/src/_models/control-models/http/http-error-response.control-model.ts +52 -52
  111. package/src/_models/control-models/http/http-headers.control-model.spec.ts +25 -25
  112. package/src/_models/control-models/http/http-headers.control-model.ts +124 -124
  113. package/src/_models/control-models/http/http-response.model-base.spec.ts +46 -46
  114. package/src/_models/control-models/http/http-response.model-base.ts +57 -57
  115. package/src/_models/control-models/poll.control-model.spec.ts +63 -63
  116. package/src/_models/control-models/poll.control-model.ts +151 -151
  117. package/src/_models/control-models/range-value.control-model.spec.ts +187 -187
  118. package/src/_models/control-models/range-value.control-model.ts +289 -289
  119. package/src/_models/control-models/server-status.control-model.spec.ts +66 -66
  120. package/src/_models/control-models/server-status.control-model.ts +85 -85
  121. package/src/_models/control-models/service-endpoint-settings-base.control-model.spec.ts +145 -145
  122. package/src/_models/control-models/service-endpoint-settings-base.control-model.ts +186 -186
  123. package/src/_models/data-models/errors.data-model.spec.ts +71 -71
  124. package/src/_models/data-models/errors.data-model.ts +158 -91
  125. package/src/_models/data-models/metadata.data-model.spec.ts +184 -184
  126. package/src/_models/data-models/metadata.data-model.ts +128 -128
  127. package/src/_models/interfaces/box-bounds.interface.ts +7 -7
  128. package/src/_models/interfaces/environment/global-log-settings.interface.ts +86 -86
  129. package/src/_models/interfaces/environment/global-settings.interface.ts +47 -47
  130. package/src/_models/interfaces/error-defaults.interface.ts +11 -11
  131. package/src/_models/interfaces/paged.interface.ts +12 -12
  132. package/src/_models/interfaces/random-weight.interface.ts +7 -7
  133. package/src/_models/interfaces/route-settings.interface.ts +15 -15
  134. package/src/_models/interfaces/search-query.interface.ts +23 -23
  135. package/src/_models/interfaces/search-result.interface.ts +5 -5
  136. package/src/_models/interfaces/server-error-statistics.interface.ts +24 -24
  137. package/src/_models/interfaces/vector2.interface.ts +20 -20
  138. package/src/_models/types/db-filter.type.ts +110 -110
  139. package/src/_models/types/db-sort.type.ts +4 -4
  140. package/src/_models/types/ds-filter.type.ts +68 -68
  141. package/src/_models/types/ds-sort.type.ts +21 -21
  142. package/src/_modules/ai/_collections/ai-model-ref.util.ts +88 -88
  143. package/src/_modules/ai/_collections/ai-model-registry.util.spec.ts +37 -37
  144. package/src/_modules/ai/_collections/ai-model-registry.util.ts +30 -30
  145. package/src/_modules/ai/_enums/ai-message-role.enum.ts +7 -7
  146. package/src/_modules/ai/_enums/ai-model-type.enum.ts +7 -7
  147. package/src/_modules/ai/_enums/ai-provider.enum.ts +7 -7
  148. package/src/_modules/ai/_models/ai-call-settings.interface.ts +84 -84
  149. package/src/_modules/ai/_models/ai-embedding-request.interface.ts +20 -20
  150. package/src/_modules/ai/_models/ai-embedding-response.interface.ts +26 -26
  151. package/src/_modules/ai/_models/ai-llm-request.interface.ts +24 -24
  152. package/src/_modules/ai/_models/ai-llm-response.interface.ts +30 -30
  153. package/src/_modules/ai/_models/ai-message.interface.ts +12 -12
  154. package/src/_modules/ai/_models/ai-model-capabilities.interface.ts +35 -35
  155. package/src/_modules/ai/_models/ai-model-info.interface.ts +63 -63
  156. package/src/_modules/ai/_models/ai-model-settings-schema.interface.ts +52 -52
  157. package/src/_modules/ai/_models/ai-provider-capabilities.interface.ts +28 -28
  158. package/src/_modules/ai/_models/ai-settings.interface.ts +17 -17
  159. package/src/_modules/ai/_models/ai-tool-call.interface.ts +18 -18
  160. package/src/_modules/ai/_models/ai-tool-handler.type.ts +11 -11
  161. package/src/_modules/ai/_models/ai-tool-result.interface.ts +16 -16
  162. package/src/_modules/ai/_models/ai-tool.interface.ts +16 -16
  163. package/src/_modules/ai/_models/ai-user-provider-config.control-model.ts +29 -29
  164. package/src/_modules/ai/_modules/anthropic/_collections/aai-models.const.ts +81 -81
  165. package/src/_modules/ai/_modules/anthropic/_enums/aai-model.enum.ts +19 -19
  166. package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.spec.ts +28 -28
  167. package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.ts +23 -23
  168. package/src/_modules/ai/_modules/anthropic/_models/aai-client-options.interface.ts +10 -10
  169. package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.spec.ts +22 -22
  170. package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.ts +27 -27
  171. package/src/_modules/ai/_modules/anthropic/_models/aai-user-provider-config.control-model.ts +20 -20
  172. package/src/_modules/ai/_modules/anthropic/index.ts +14 -14
  173. package/src/_modules/ai/_modules/document-ai/_models/dai-embedding-info.interface.ts +12 -12
  174. package/src/_modules/ai/_modules/document-ai/_models/dai-vector-search-params.interface.ts +22 -22
  175. package/src/_modules/ai/_modules/document-ai/index.ts +4 -4
  176. package/src/_modules/ai/_modules/fdp-ai/_collections/fdpai-models.const.ts +34 -34
  177. package/src/_modules/ai/_modules/fdp-ai/_enums/fdpai-model.enum.ts +6 -6
  178. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-call-settings.control-model.ts +19 -19
  179. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-client-options.interface.ts +11 -11
  180. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-settings.control-model.ts +24 -24
  181. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-user-provider-config.control-model.ts +20 -20
  182. package/src/_modules/ai/_modules/fdp-ai/index.ts +11 -11
  183. package/src/_modules/ai/_modules/google-ai/_collections/gai-models.const.ts +99 -99
  184. package/src/_modules/ai/_modules/google-ai/_enums/gai-model.enum.ts +16 -16
  185. package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.spec.ts +28 -28
  186. package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.ts +21 -21
  187. package/src/_modules/ai/_modules/google-ai/_models/gai-client-options.interface.ts +8 -8
  188. package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.spec.ts +22 -22
  189. package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.ts +25 -25
  190. package/src/_modules/ai/_modules/google-ai/_models/gai-user-provider-config.control-model.ts +20 -20
  191. package/src/_modules/ai/_modules/google-ai/index.ts +14 -14
  192. package/src/_modules/ai/_modules/local-ai/_collections/lai-models.const.ts +53 -53
  193. package/src/_modules/ai/_modules/local-ai/_enums/lai-model.enum.ts +6 -6
  194. package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.spec.ts +28 -28
  195. package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.ts +18 -18
  196. package/src/_modules/ai/_modules/local-ai/_models/lai-client-options.interface.ts +9 -9
  197. package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.spec.ts +22 -22
  198. package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.ts +23 -23
  199. package/src/_modules/ai/_modules/local-ai/index.ts +14 -14
  200. package/src/_modules/ai/_modules/open-ai/_collections/oai-embedding-model-dimensions.const.ts +7 -7
  201. package/src/_modules/ai/_modules/open-ai/_collections/oai-models.const.ts +252 -252
  202. package/src/_modules/ai/_modules/open-ai/_enums/oai-model.enum.ts +179 -179
  203. package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.spec.ts +28 -28
  204. package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.ts +21 -21
  205. package/src/_modules/ai/_modules/open-ai/_models/oai-client-options.interface.ts +81 -81
  206. package/src/_modules/ai/_modules/open-ai/_models/oai-embedding-info.interface.ts +13 -13
  207. package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.spec.ts +22 -22
  208. package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.ts +25 -25
  209. package/src/_modules/ai/_modules/open-ai/_models/oai-user-provider-config.control-model.ts +21 -21
  210. package/src/_modules/ai/_modules/open-ai/index.ts +28 -28
  211. package/src/_modules/ai/index.ts +27 -27
  212. package/src/_modules/ci-tools/_enums/cit-ci-result-code.enum.ts +11 -11
  213. package/src/_modules/ci-tools/_enums/cit-ci-step-result-code.enum.ts +9 -9
  214. package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.spec.ts +58 -58
  215. package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.ts +77 -77
  216. package/src/_modules/ci-tools/_models/cit-ci-step-result.interface.ts +12 -12
  217. package/src/_modules/ci-tools/index.ts +8 -8
  218. package/src/_modules/crypto/_collections/crypto.util.simple.spec.ts +512 -512
  219. package/src/_modules/crypto/index.ts +13 -13
  220. package/src/_modules/custom-data/_collections/cud-module-settings.const.ts +21 -21
  221. package/src/_modules/custom-data/_models/cud.data-model.spec.ts +38 -38
  222. package/src/_modules/custom-data/_models/cud.data-model.ts +39 -39
  223. package/src/_modules/custom-data/index.ts +10 -10
  224. package/src/_modules/data-handler/_models/data-handler-settings.control-model.spec.ts +110 -110
  225. package/src/_modules/data-handler/_models/data-handler-settings.control-model.ts +110 -110
  226. package/src/_modules/data-handler/_models/data-handler.control-model.spec.ts +445 -445
  227. package/src/_modules/data-handler/_models/data-handler.control-model.ts +459 -459
  228. package/src/_modules/data-handler/_models/data-list-handler.control-model.spec.ts +263 -263
  229. package/src/_modules/data-handler/_models/data-list-handler.control-model.ts +252 -252
  230. package/src/_modules/data-handler/_models/data-search-handler.control-model.spec.ts +417 -417
  231. package/src/_modules/data-handler/_models/data-search-handler.control-model.ts +390 -390
  232. package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.spec.ts +374 -374
  233. package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.ts +274 -274
  234. package/src/_modules/data-handler/index.ts +6 -6
  235. package/src/_modules/location/_collections/assets/country-codes-ISO-3166.json +3239 -3239
  236. package/src/_modules/location/_collections/assets/country-divisions-ISO-3166-all-list.json +19035 -19035
  237. package/src/_modules/location/_collections/assets/country-divisions-ISO-3166.json +4993 -4993
  238. package/src/_modules/location/_collections/assets/country-phone-codes.json +1203 -1203
  239. package/src/_modules/location/_collections/assets/country-subdivisions/afghanistan.json +137 -137
  240. package/src/_modules/location/_collections/assets/country-subdivisions/albania.json +49 -49
  241. package/src/_modules/location/_collections/assets/country-subdivisions/algeria.json +193 -193
  242. package/src/_modules/location/_collections/assets/country-subdivisions/andorra.json +29 -29
  243. package/src/_modules/location/_collections/assets/country-subdivisions/angola.json +73 -73
  244. package/src/_modules/location/_collections/assets/country-subdivisions/antigua-and-barbuda.json +33 -33
  245. package/src/_modules/location/_collections/assets/country-subdivisions/argentina.json +97 -97
  246. package/src/_modules/location/_collections/assets/country-subdivisions/armenia.json +45 -45
  247. package/src/_modules/location/_collections/assets/country-subdivisions/australia.json +33 -33
  248. package/src/_modules/location/_collections/assets/country-subdivisions/austria.json +37 -37
  249. package/src/_modules/location/_collections/assets/country-subdivisions/azerbaijan.json +5 -5
  250. package/src/_modules/location/_collections/assets/country-subdivisions/bahamas.json +125 -125
  251. package/src/_modules/location/_collections/assets/country-subdivisions/bahrain.json +21 -21
  252. package/src/_modules/location/_collections/assets/country-subdivisions/bangladesh.json +29 -29
  253. package/src/_modules/location/_collections/assets/country-subdivisions/barbados.json +45 -45
  254. package/src/_modules/location/_collections/assets/country-subdivisions/belarus.json +29 -29
  255. package/src/_modules/location/_collections/assets/country-subdivisions/belgium.json +13 -13
  256. package/src/_modules/location/_collections/assets/country-subdivisions/belize.json +25 -25
  257. package/src/_modules/location/_collections/assets/country-subdivisions/benin.json +49 -49
  258. package/src/_modules/location/_collections/assets/country-subdivisions/bhutan.json +81 -81
  259. package/src/_modules/location/_collections/assets/country-subdivisions/bolivia.json +37 -37
  260. package/src/_modules/location/_collections/assets/country-subdivisions/bosnia-and-herzegovina.json +13 -13
  261. package/src/_modules/location/_collections/assets/country-subdivisions/botswana.json +65 -65
  262. package/src/_modules/location/_collections/assets/country-subdivisions/brazil.json +109 -109
  263. package/src/_modules/location/_collections/assets/country-subdivisions/brunei-darussalam.json +17 -17
  264. package/src/_modules/location/_collections/assets/country-subdivisions/bulgaria.json +113 -113
  265. package/src/_modules/location/_collections/assets/country-subdivisions/burkina-faso.json +53 -53
  266. package/src/_modules/location/_collections/assets/country-subdivisions/burundi.json +69 -69
  267. package/src/_modules/location/_collections/assets/country-subdivisions/cambodia.json +97 -97
  268. package/src/_modules/location/_collections/assets/country-subdivisions/cameroon.json +41 -41
  269. package/src/_modules/location/_collections/assets/country-subdivisions/canada.json +79 -79
  270. package/src/_modules/location/_collections/assets/country-subdivisions/cape-verde.json +9 -9
  271. package/src/_modules/location/_collections/assets/country-subdivisions/central-african-republic.json +69 -69
  272. package/src/_modules/location/_collections/assets/country-subdivisions/chad.json +89 -89
  273. package/src/_modules/location/_collections/assets/country-subdivisions/chile.json +61 -61
  274. package/src/_modules/location/_collections/assets/country-subdivisions/china.json +205 -205
  275. package/src/_modules/location/_collections/assets/country-subdivisions/colombia.json +133 -133
  276. package/src/_modules/location/_collections/assets/country-subdivisions/comoros.json +13 -13
  277. package/src/_modules/location/_collections/assets/country-subdivisions/congo-the-democratic-republic-of-the.json +45 -45
  278. package/src/_modules/location/_collections/assets/country-subdivisions/congo.json +49 -49
  279. package/src/_modules/location/_collections/assets/country-subdivisions/costa-rica.json +29 -29
  280. package/src/_modules/location/_collections/assets/country-subdivisions/cote-d-ivoire-republic-of.json +77 -77
  281. package/src/_modules/location/_collections/assets/country-subdivisions/croatia.json +85 -85
  282. package/src/_modules/location/_collections/assets/country-subdivisions/cuba.json +65 -65
  283. package/src/_modules/location/_collections/assets/country-subdivisions/cyprus.json +25 -25
  284. package/src/_modules/location/_collections/assets/country-subdivisions/czech-republic.json +57 -57
  285. package/src/_modules/location/_collections/assets/country-subdivisions/denmark.json +21 -21
  286. package/src/_modules/location/_collections/assets/country-subdivisions/djibouti.json +25 -25
  287. package/src/_modules/location/_collections/assets/country-subdivisions/dominica.json +41 -41
  288. package/src/_modules/location/_collections/assets/country-subdivisions/dominican-republic.json +41 -41
  289. package/src/_modules/location/_collections/assets/country-subdivisions/ecuador.json +97 -97
  290. package/src/_modules/location/_collections/assets/country-subdivisions/egypt.json +117 -117
  291. package/src/_modules/location/_collections/assets/country-subdivisions/el-salvador.json +57 -57
  292. package/src/_modules/location/_collections/assets/country-subdivisions/equatorial-guinea.json +9 -9
  293. package/src/_modules/location/_collections/assets/country-subdivisions/eritrea.json +25 -25
  294. package/src/_modules/location/_collections/assets/country-subdivisions/estonia.json +61 -61
  295. package/src/_modules/location/_collections/assets/country-subdivisions/ethiopia.json +45 -45
  296. package/src/_modules/location/_collections/assets/country-subdivisions/fiji.json +21 -21
  297. package/src/_modules/location/_collections/assets/country-subdivisions/finland.json +77 -77
  298. package/src/_modules/location/_collections/assets/country-subdivisions/france.json +133 -133
  299. package/src/_modules/location/_collections/assets/country-subdivisions/gabon.json +37 -37
  300. package/src/_modules/location/_collections/assets/country-subdivisions/gambia.json +25 -25
  301. package/src/_modules/location/_collections/assets/country-subdivisions/georgia.json +49 -49
  302. package/src/_modules/location/_collections/assets/country-subdivisions/germany.json +65 -65
  303. package/src/_modules/location/_collections/assets/country-subdivisions/ghana.json +41 -41
  304. package/src/_modules/location/_collections/assets/country-subdivisions/greece.json +53 -53
  305. package/src/_modules/location/_collections/assets/country-subdivisions/greenland.json +17 -17
  306. package/src/_modules/location/_collections/assets/country-subdivisions/grenada.json +29 -29
  307. package/src/_modules/location/_collections/assets/country-subdivisions/guatemala.json +89 -89
  308. package/src/_modules/location/_collections/assets/country-subdivisions/guinea-bissau.json +13 -13
  309. package/src/_modules/location/_collections/assets/country-subdivisions/guinea.json +33 -33
  310. package/src/_modules/location/_collections/assets/country-subdivisions/guyana.json +41 -41
  311. package/src/_modules/location/_collections/assets/country-subdivisions/haiti.json +41 -41
  312. package/src/_modules/location/_collections/assets/country-subdivisions/honduras.json +73 -73
  313. package/src/_modules/location/_collections/assets/country-subdivisions/hong-kong.json +4 -4
  314. package/src/_modules/location/_collections/assets/country-subdivisions/hungary.json +173 -173
  315. package/src/_modules/location/_collections/assets/country-subdivisions/iceland.json +37 -37
  316. package/src/_modules/location/_collections/assets/country-subdivisions/india.json +181 -181
  317. package/src/_modules/location/_collections/assets/country-subdivisions/indonesia.json +29 -29
  318. package/src/_modules/location/_collections/assets/country-subdivisions/iran-islamic-republic-of.json +125 -125
  319. package/src/_modules/location/_collections/assets/country-subdivisions/iraq.json +73 -73
  320. package/src/_modules/location/_collections/assets/country-subdivisions/ireland.json +17 -17
  321. package/src/_modules/location/_collections/assets/country-subdivisions/israel.json +25 -25
  322. package/src/_modules/location/_collections/assets/country-subdivisions/italy.json +81 -81
  323. package/src/_modules/location/_collections/assets/country-subdivisions/jamaica.json +57 -57
  324. package/src/_modules/location/_collections/assets/country-subdivisions/japan.json +189 -189
  325. package/src/_modules/location/_collections/assets/country-subdivisions/jordan.json +49 -49
  326. package/src/_modules/location/_collections/assets/country-subdivisions/kazakhstan.json +65 -65
  327. package/src/_modules/location/_collections/assets/country-subdivisions/kenya.json +33 -33
  328. package/src/_modules/location/_collections/assets/country-subdivisions/kiribati.json +13 -13
  329. package/src/_modules/location/_collections/assets/country-subdivisions/korea-democratic-people-s-republic-of.json +45 -45
  330. package/src/_modules/location/_collections/assets/country-subdivisions/korea-republic-of.json +69 -69
  331. package/src/_modules/location/_collections/assets/country-subdivisions/kuwait.json +25 -25
  332. package/src/_modules/location/_collections/assets/country-subdivisions/kyrgyzstan.json +33 -33
  333. package/src/_modules/location/_collections/assets/country-subdivisions/lao-people-s-democratic-republic.json +73 -73
  334. package/src/_modules/location/_collections/assets/country-subdivisions/latvia.json +477 -477
  335. package/src/_modules/location/_collections/assets/country-subdivisions/lebanon.json +33 -33
  336. package/src/_modules/location/_collections/assets/country-subdivisions/lesotho.json +41 -41
  337. package/src/_modules/location/_collections/assets/country-subdivisions/liberia.json +61 -61
  338. package/src/_modules/location/_collections/assets/country-subdivisions/libyan-arab-jamahiriya.json +89 -89
  339. package/src/_modules/location/_collections/assets/country-subdivisions/liechtenstein.json +45 -45
  340. package/src/_modules/location/_collections/assets/country-subdivisions/lithuania.json +41 -41
  341. package/src/_modules/location/_collections/assets/country-subdivisions/luxembourg.json +13 -13
  342. package/src/_modules/location/_collections/assets/country-subdivisions/macedonia-the-former-yugoslav-republic-of.json +337 -337
  343. package/src/_modules/location/_collections/assets/country-subdivisions/madagascar.json +25 -25
  344. package/src/_modules/location/_collections/assets/country-subdivisions/malawi.json +13 -13
  345. package/src/_modules/location/_collections/assets/country-subdivisions/malaysia.json +81 -81
  346. package/src/_modules/location/_collections/assets/country-subdivisions/maldives.json +33 -33
  347. package/src/_modules/location/_collections/assets/country-subdivisions/mali.json +37 -37
  348. package/src/_modules/location/_collections/assets/country-subdivisions/malta.json +273 -273
  349. package/src/_modules/location/_collections/assets/country-subdivisions/marshall-islands.json +9 -9
  350. package/src/_modules/location/_collections/assets/country-subdivisions/mauritania.json +53 -53
  351. package/src/_modules/location/_collections/assets/country-subdivisions/mauritius.json +69 -69
  352. package/src/_modules/location/_collections/assets/country-subdivisions/mexico.json +161 -161
  353. package/src/_modules/location/_collections/assets/country-subdivisions/micronesia-federated-states-of.json +17 -17
  354. package/src/_modules/location/_collections/assets/country-subdivisions/moldova-republic-of.json +149 -149
  355. package/src/_modules/location/_collections/assets/country-subdivisions/monaco.json +69 -69
  356. package/src/_modules/location/_collections/assets/country-subdivisions/mongolia.json +89 -89
  357. package/src/_modules/location/_collections/assets/country-subdivisions/montenegro.json +93 -93
  358. package/src/_modules/location/_collections/assets/country-subdivisions/morocco.json +65 -65
  359. package/src/_modules/location/_collections/assets/country-subdivisions/mozambique.json +45 -45
  360. package/src/_modules/location/_collections/assets/country-subdivisions/myanmar.json +57 -57
  361. package/src/_modules/location/_collections/assets/country-subdivisions/namibia.json +57 -57
  362. package/src/_modules/location/_collections/assets/country-subdivisions/nauru.json +57 -57
  363. package/src/_modules/location/_collections/assets/country-subdivisions/nepal.json +21 -21
  364. package/src/_modules/location/_collections/assets/country-subdivisions/netherlands.json +91 -91
  365. package/src/_modules/location/_collections/assets/country-subdivisions/new-zealand.json +111 -111
  366. package/src/_modules/location/_collections/assets/country-subdivisions/nicaragua.json +69 -69
  367. package/src/_modules/location/_collections/assets/country-subdivisions/niger.json +33 -33
  368. package/src/_modules/location/_collections/assets/country-subdivisions/nigeria.json +149 -149
  369. package/src/_modules/location/_collections/assets/country-subdivisions/norway.json +85 -85
  370. package/src/_modules/location/_collections/assets/country-subdivisions/oman.json +37 -37
  371. package/src/_modules/location/_collections/assets/country-subdivisions/pakistan.json +33 -33
  372. package/src/_modules/location/_collections/assets/country-subdivisions/palau.json +65 -65
  373. package/src/_modules/location/_collections/assets/country-subdivisions/palestinian-territory-occupied.json +65 -65
  374. package/src/_modules/location/_collections/assets/country-subdivisions/panama.json +53 -53
  375. package/src/_modules/location/_collections/assets/country-subdivisions/papua-new-guinea.json +81 -81
  376. package/src/_modules/location/_collections/assets/country-subdivisions/paraguay.json +73 -73
  377. package/src/_modules/location/_collections/assets/country-subdivisions/peru.json +105 -105
  378. package/src/_modules/location/_collections/assets/country-subdivisions/philippines.json +69 -69
  379. package/src/_modules/location/_collections/assets/country-subdivisions/poland.json +65 -65
  380. package/src/_modules/location/_collections/assets/country-subdivisions/portugal.json +81 -81
  381. package/src/_modules/location/_collections/assets/country-subdivisions/qatar.json +29 -29
  382. package/src/_modules/location/_collections/assets/country-subdivisions/romania.json +169 -169
  383. package/src/_modules/location/_collections/assets/country-subdivisions/russian-federation.json +499 -499
  384. package/src/_modules/location/_collections/assets/country-subdivisions/rwanda.json +21 -21
  385. package/src/_modules/location/_collections/assets/country-subdivisions/saint-helena-ascension-and-tristan-da-cunha.json +13 -13
  386. package/src/_modules/location/_collections/assets/country-subdivisions/saint-kitts-and-nevis.json +9 -9
  387. package/src/_modules/location/_collections/assets/country-subdivisions/saint-lucia.json +45 -45
  388. package/src/_modules/location/_collections/assets/country-subdivisions/saint-vincent-and-the-grenadines.json +25 -25
  389. package/src/_modules/location/_collections/assets/country-subdivisions/samoa.json +45 -45
  390. package/src/_modules/location/_collections/assets/country-subdivisions/san-marino.json +37 -37
  391. package/src/_modules/location/_collections/assets/country-subdivisions/sao-tome-and-principe.json +9 -9
  392. package/src/_modules/location/_collections/assets/country-subdivisions/saudi-arabia.json +53 -53
  393. package/src/_modules/location/_collections/assets/country-subdivisions/senegal.json +57 -57
  394. package/src/_modules/location/_collections/assets/country-subdivisions/serbia.json +9 -9
  395. package/src/_modules/location/_collections/assets/country-subdivisions/seychelles.json +101 -101
  396. package/src/_modules/location/_collections/assets/country-subdivisions/sierra-leone.json +17 -17
  397. package/src/_modules/location/_collections/assets/country-subdivisions/singapore.json +21 -21
  398. package/src/_modules/location/_collections/assets/country-subdivisions/slovakia.json +33 -33
  399. package/src/_modules/location/_collections/assets/country-subdivisions/slovenia.json +841 -841
  400. package/src/_modules/location/_collections/assets/country-subdivisions/solomon-islands.json +41 -41
  401. package/src/_modules/location/_collections/assets/country-subdivisions/somalia.json +73 -73
  402. package/src/_modules/location/_collections/assets/country-subdivisions/south-africa.json +37 -37
  403. package/src/_modules/location/_collections/assets/country-subdivisions/south-sudan.json +41 -41
  404. package/src/_modules/location/_collections/assets/country-subdivisions/spain.json +346 -346
  405. package/src/_modules/location/_collections/assets/country-subdivisions/sri-lanka.json +37 -37
  406. package/src/_modules/location/_collections/assets/country-subdivisions/sudan.json +69 -69
  407. package/src/_modules/location/_collections/assets/country-subdivisions/suriname.json +41 -41
  408. package/src/_modules/location/_collections/assets/country-subdivisions/swaziland.json +17 -17
  409. package/src/_modules/location/_collections/assets/country-subdivisions/sweden.json +85 -85
  410. package/src/_modules/location/_collections/assets/country-subdivisions/switzerland.json +105 -105
  411. package/src/_modules/location/_collections/assets/country-subdivisions/syrian-arab-republic.json +57 -57
  412. package/src/_modules/location/_collections/assets/country-subdivisions/taiwan-province-of-china.json +93 -93
  413. package/src/_modules/location/_collections/assets/country-subdivisions/tajikistan.json +17 -17
  414. package/src/_modules/location/_collections/assets/country-subdivisions/tanzania-united-republic-of.json +105 -105
  415. package/src/_modules/location/_collections/assets/country-subdivisions/thailand.json +313 -313
  416. package/src/_modules/location/_collections/assets/country-subdivisions/timor-leste.json +53 -53
  417. package/src/_modules/location/_collections/assets/country-subdivisions/togo.json +21 -21
  418. package/src/_modules/location/_collections/assets/country-subdivisions/tonga.json +21 -21
  419. package/src/_modules/location/_collections/assets/country-subdivisions/trinidad-and-tobago.json +65 -65
  420. package/src/_modules/location/_collections/assets/country-subdivisions/tunisia.json +97 -97
  421. package/src/_modules/location/_collections/assets/country-subdivisions/turkey.json +325 -325
  422. package/src/_modules/location/_collections/assets/country-subdivisions/turkmenistan.json +25 -25
  423. package/src/_modules/location/_collections/assets/country-subdivisions/tuvalu.json +33 -33
  424. package/src/_modules/location/_collections/assets/country-subdivisions/uganda.json +17 -17
  425. package/src/_modules/location/_collections/assets/country-subdivisions/ukraine.json +109 -109
  426. package/src/_modules/location/_collections/assets/country-subdivisions/united-arab-emirates.json +29 -29
  427. package/src/_modules/location/_collections/assets/country-subdivisions/united-kingdom.json +1196 -1196
  428. package/src/_modules/location/_collections/assets/country-subdivisions/united-states-minor-outlying-islands.json +37 -37
  429. package/src/_modules/location/_collections/assets/country-subdivisions/united-states.json +286 -286
  430. package/src/_modules/location/_collections/assets/country-subdivisions/uruguay.json +77 -77
  431. package/src/_modules/location/_collections/assets/country-subdivisions/uzbekistan.json +57 -57
  432. package/src/_modules/location/_collections/assets/country-subdivisions/vanuatu.json +25 -25
  433. package/src/_modules/location/_collections/assets/country-subdivisions/venezuela.json +101 -101
  434. package/src/_modules/location/_collections/assets/country-subdivisions/viet-nam.json +257 -257
  435. package/src/_modules/location/_collections/assets/country-subdivisions/yemen.json +85 -85
  436. package/src/_modules/location/_collections/assets/country-subdivisions/zambia.json +37 -37
  437. package/src/_modules/location/_collections/assets/country-subdivisions/zimbabwe.json +41 -41
  438. package/src/_modules/location/_collections/loc-country-divisions.const.ts +10 -10
  439. package/src/_modules/location/_collections/loc-country-isos.const.ts +8 -8
  440. package/src/_modules/location/_collections/loc-regions.util.spec.ts +61 -61
  441. package/src/_modules/location/_collections/loc-regions.util.ts +137 -137
  442. package/src/_modules/location/_collections/loc.util.spec.ts +52 -52
  443. package/src/_modules/location/_collections/loc.util.ts +74 -74
  444. package/src/_modules/location/_enums/loc-region.enum.ts +14 -14
  445. package/src/_modules/location/_enums/loc-sub-region.enum.ts +31 -31
  446. package/src/_modules/location/_enums/loc-subdivision-region-type.enum.ts +47 -47
  447. package/src/_modules/location/_models/loc-coordinates.interface.ts +7 -7
  448. package/src/_modules/location/_models/loc-country-division.interface.ts +8 -8
  449. package/src/_modules/location/_models/loc-country-iso.interface.ts +23 -23
  450. package/src/_modules/location/_models/loc-country-phone-code.interface.ts +9 -9
  451. package/src/_modules/location/_models/loc-division-collection.interface.ts +12 -12
  452. package/src/_modules/location/_models/loc-division-region-data.interface.ts +9 -9
  453. package/src/_modules/location/_models/loc-geo-ip-location.interface.ts +27 -27
  454. package/src/_modules/location/index.ts +22 -22
  455. package/src/_modules/messaging/README.md +279 -279
  456. package/src/_modules/messaging/_collections/msg-module-settings.const.ts +46 -46
  457. package/src/_modules/messaging/_enums/msg-attachment-type.enum.ts +26 -26
  458. package/src/_modules/messaging/_enums/msg-delivery-status.enum.ts +17 -17
  459. package/src/_modules/messaging/_enums/msg-event-key.enum.ts +31 -31
  460. package/src/_modules/messaging/_enums/msg-participant-role.enum.ts +20 -20
  461. package/src/_modules/messaging/_enums/msg-provider-type.enum.ts +7 -7
  462. package/src/_modules/messaging/_enums/msg-type.enum.ts +23 -23
  463. package/src/_modules/messaging/_models/msg-attachment.interface.ts +46 -46
  464. package/src/_modules/messaging/_models/msg-conversation.data-model.spec.ts +69 -69
  465. package/src/_modules/messaging/_models/msg-conversation.data-model.ts +96 -96
  466. package/src/_modules/messaging/_models/msg-mention.interface.ts +29 -29
  467. package/src/_modules/messaging/_models/msg-message.data-model.spec.ts +79 -79
  468. package/src/_modules/messaging/_models/msg-message.data-model.ts +127 -127
  469. package/src/_modules/messaging/_models/msg-participant.interface.ts +46 -46
  470. package/src/_modules/messaging/_models/msg-reaction.interface.ts +20 -20
  471. package/src/_modules/messaging/_models/msg-thread-info.interface.ts +35 -35
  472. package/src/_modules/messaging/_modules/agent/_enums/agt-process-step-type.enum.ts +35 -35
  473. package/src/_modules/messaging/_modules/agent/_enums/agt-tool-status.enum.ts +23 -23
  474. package/src/_modules/messaging/_modules/agent/_models/agt-process-step.interface.ts +55 -55
  475. package/src/_modules/messaging/_modules/agent/_models/agt-reasoning-info.interface.ts +26 -26
  476. package/src/_modules/messaging/_modules/agent/_models/agt-tool-usage.interface.ts +37 -37
  477. package/src/_modules/messaging/_modules/agent/index.ts +8 -8
  478. package/src/_modules/messaging/index.ts +28 -28
  479. package/src/_modules/pipe/_collections/pip-transforms.const.ts +42 -42
  480. package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.spec.ts +47 -47
  481. package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.ts +41 -41
  482. package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.spec.ts +39 -39
  483. package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.ts +30 -30
  484. package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.spec.ts +41 -41
  485. package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.ts +36 -36
  486. package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.spec.ts +62 -62
  487. package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.ts +17 -17
  488. package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.spec.ts +34 -34
  489. package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.ts +25 -25
  490. package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.spec.ts +67 -67
  491. package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.ts +226 -226
  492. package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.spec.ts +28 -28
  493. package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.ts +21 -21
  494. package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.spec.ts +59 -59
  495. package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.ts +106 -106
  496. package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.spec.ts +31 -31
  497. package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.ts +35 -35
  498. package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.spec.ts +44 -44
  499. package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.ts +23 -23
  500. package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.spec.ts +21 -21
  501. package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.ts +33 -33
  502. package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.spec.ts +62 -62
  503. package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.ts +80 -80
  504. package/src/_modules/pipe/_enums/pip-range-pipe-setting.enum.ts +15 -15
  505. package/src/_modules/pipe/_enums/pip.enum.ts +65 -65
  506. package/src/_modules/pipe/_models/pip-multi-pipe-settings.type.ts +8 -8
  507. package/src/_modules/pipe/_models/pip-transforms.interface.ts +30 -30
  508. package/src/_modules/pipe/index.ts +30 -30
  509. package/src/_modules/socket/_enums/sck-event-key.enum.ts +21 -21
  510. package/src/_modules/socket/_models/sck-client-params.control-model.spec.ts +67 -67
  511. package/src/_modules/socket/_models/sck-client-params.control-model.ts +50 -50
  512. package/src/_modules/socket/_models/sck-socket-event.control-model.spec.ts +66 -66
  513. package/src/_modules/socket/_models/sck-socket-event.control-model.ts +172 -172
  514. package/src/_modules/socket/_services/sck-client.service-base.spec.ts +99 -99
  515. package/src/_modules/socket/_services/sck-client.service-base.ts +353 -353
  516. package/src/_modules/socket/index.ts +14 -14
  517. package/src/_modules/test/_collections/tst-module-settings.const.ts +67 -67
  518. package/src/_modules/test/index.ts +5 -5
  519. package/src/_modules/usage/_collections/usg-module-settings.const.ts +33 -33
  520. package/src/_modules/usage/_models/usg-action.control-model.spec.ts +27 -27
  521. package/src/_modules/usage/_models/usg-action.control-model.ts +28 -28
  522. package/src/_modules/usage/_models/usg-daily-usage-data.control-model.spec.ts +36 -36
  523. package/src/_modules/usage/_models/usg-daily-usage-data.control-model.ts +35 -35
  524. package/src/_modules/usage/_models/usg-data.control-model.spec.ts +41 -41
  525. package/src/_modules/usage/_models/usg-data.control-model.ts +35 -35
  526. package/src/_modules/usage/_models/usg-session.data-model.spec.ts +97 -97
  527. package/src/_modules/usage/_models/usg-session.data-model.ts +72 -72
  528. package/src/_modules/usage/index.ts +11 -11
  529. package/src/index.ts +102 -102
  530. package/tsconfig.app.json +12 -12
  531. package/tsconfig.json +31 -31
  532. package/tsconfig.test.json +16 -16
  533. package/tslint.json +153 -153
  534. package/pipeline.cicd.config.json +0 -128
@@ -1,252 +1,252 @@
1
- import { BehaviorSubject, Observable } from 'rxjs';
2
-
3
- import { DyFM_DataListHandler_Settings } from './data-handler-settings.control-model';
4
-
5
- import { DyFM_DataHandler } from './data-handler.control-model';
6
- import { DyFM_Metadata } from '../../../_models/data-models/metadata.data-model';
7
- import { DyFM_Error } from '../../../_models/control-models/error.control-model';
8
- import { DyFM_Log } from '../../../_collections/utils/log.util';
9
-
10
- /**
11
- * A specialized data handler for managing arrays of data items.
12
- * Extends DyFM_DataHandler to provide additional functionality for handling lists of data.
13
- *
14
- * @template T_DataList - The type of the data list (must be an array of T_DataItem)
15
- * @template T_DependencyData - The type of dependency data (defaults to any)
16
- * @template T_DataLoadBy - The type used to identify how data should be loaded (defaults to string)
17
- * @template T_DataItem - The type of individual items in the list (must extend DyFM_Metadata)
18
- *
19
- * @example
20
- * ```typescript
21
- * // Create a data list handler for user messages
22
- * const messagesHandler = new DyFM_DataListHandler<UserMessage[]>({
23
- * get: async (userId: string): Promise<UserMessage[]> => {
24
- * return await userApiService.getUserMessages(userId, 0, 100);
25
- * }
26
- * });
27
- *
28
- * // Access the data list
29
- * const messages = messagesHandler.dataList;
30
- *
31
- * // Add a new message
32
- * messagesHandler.addItem(newMessage);
33
- *
34
- * // Update an existing message
35
- * messagesHandler.updateItem(updatedMessage);
36
- *
37
- * // Subscribe to changes
38
- * messagesHandler.dataList$.subscribe(messages => {
39
- * console.log('Messages updated:', messages);
40
- * });
41
- * ```
42
- */
43
- export class DyFM_DataListHandler<
44
- T_DataItem extends DyFM_Metadata,
45
- T_DependencyData extends DyFM_Metadata = any,
46
- T_DataLoadBy = string,
47
- T_UpdateItemBy = string,
48
- > extends DyFM_DataHandler<T_DataItem[], T_DependencyData, T_DataLoadBy> {
49
-
50
- protected readonly setItem: (item: T_DataItem, updateBy?: T_UpdateItemBy) => Promise<T_DataItem>;
51
- protected readonly deleteItem: (id: string, updateBy?: T_UpdateItemBy) => Promise<void>;
52
-
53
- /**
54
- * BehaviorSubject that holds the current data list.
55
- * Computed from the base data_BS BehaviorSubject, ensuring it always returns an array.
56
- */
57
- protected readonly dataList_BS: BehaviorSubject<T_DataItem[]>;
58
-
59
- /**
60
- * Observable that holds the current data list.
61
- * Computed from the base data$ Observable, ensuring it always returns an array.
62
- */
63
- readonly dataList$: Observable<T_DataItem[]>;
64
-
65
- /**
66
- * BehaviorSubject that holds the currently active item.
67
- */
68
- readonly activeItem_BS: BehaviorSubject<T_DataItem>;
69
-
70
- /**
71
- * Observable that holds the currently active item.
72
- */
73
- readonly activeItem$: Observable<T_DataItem>;
74
-
75
- /**
76
- * Gets the current data list.
77
- * @returns The current array of data items
78
- */
79
- override get data(): T_DataItem[] {
80
- return this.dataList_BS.value;
81
- }
82
-
83
- /**
84
- * Gets the current data list.
85
- * Alias for data getter.
86
- * @returns The current array of data items
87
- */
88
- get dataList(): T_DataItem[] {
89
- return this.dataList_BS.value;
90
- }
91
-
92
- /**
93
- * Creates a new instance of DyFM_DataListHandler.
94
- *
95
- * @param set - Configuration settings for the data handler
96
- * @param skipDependencyConnections - Optional flag to skip dependency connections during construction
97
- */
98
- constructor(
99
- set: DyFM_DataListHandler_Settings<T_DataItem, T_DependencyData, T_DataLoadBy, T_UpdateItemBy>,
100
- /** is in construct?
101
- * so the dependent data handlers are not added here, but in the extended class */
102
- skipDependencyConnections?: boolean,
103
- ) {
104
- super(set, skipDependencyConnections);
105
-
106
- // Initialize dataList BehaviorSubject and Observable
107
- this.dataList_BS = new BehaviorSubject<T_DataItem[]>([]);
108
- this.dataList$ = this.dataList_BS.asObservable();
109
-
110
- // Initialize activeItem BehaviorSubject and Observable
111
- this.activeItem_BS = new BehaviorSubject<T_DataItem>(null);
112
- this.activeItem$ = this.activeItem_BS.asObservable();
113
-
114
- // Subscribe to data changes to update dataList
115
- this.data$.subscribe(data => {
116
- const dataList = Array.isArray(data) ? data : [];
117
- this.dataList_BS.next(dataList);
118
- });
119
-
120
- if (set.setItem) {
121
- this.setItem = set.setItem;
122
- }
123
-
124
- if (set.deleteItem) {
125
- this.deleteItem = set.deleteItem;
126
- }
127
-
128
- this.getPostProcesses.push((data: T_DataItem[]) => {
129
- // check if data is an array
130
- if (!Array.isArray(data) ) {
131
- console.error(
132
- `DYNAMO DataListHandler (${this.name}) ERROR: ` +
133
- `\nData is not an array!:` +
134
- '\n\n', data
135
- );
136
- throw new Error(`Data is not an array! (${this.name})`);
137
- }
138
-
139
- return data;
140
- });
141
-
142
- if (!skipDependencyConnections) {
143
- if (set.dependencyDataHandler) {
144
- this.addDependencyDataHandler(set.dependencyDataHandler);
145
- }
146
-
147
- if (set.dependentDataHandlers) {
148
- this.addDependentDataHandlers(set.dependentDataHandlers, true);
149
- }
150
- }
151
- }
152
-
153
- override async reloadData(loadBy?: T_DataLoadBy): Promise<T_DataItem[]> {
154
- try {
155
- const setActiveItem = !this.activeItem_BS.value || this.activeItem_BS.value?._id !== loadBy;
156
- const dataList = await super.reloadData(loadBy);
157
- if (setActiveItem && dataList.length > 0) {
158
- this.setActiveItem(dataList[0]);
159
- }
160
- return dataList;
161
- } catch (error) {
162
- DyFM_Log.error(`Error reloading DyFM_DataListHandler (${this.name}):`, error);
163
-
164
- throw error;
165
- }
166
- }
167
-
168
- override clear(dontClearDependents?: boolean): void {
169
- super.clear(dontClearDependents);
170
- this.activeItem_BS.next(null);
171
- }
172
-
173
- /**
174
- * Adds a new item to the data list.
175
- *
176
- * @param item - The item to add to the list
177
- * @param updateBy - Optional parameter for update tracking
178
- * @param dontSendUpdate - Optional flag to prevent sending update notification
179
- */
180
- async addItem(item: T_DataItem, updateBy?: T_UpdateItemBy, dontSendUpdate?: boolean): Promise<void> {
181
- const currentData = this.data;
182
- currentData.push(item);
183
- if (this.setItem && !dontSendUpdate) {
184
- await this.setItem(item, updateBy);
185
- // dont send update because we already sent it to the setItem function
186
- await this.updateData(this.dataList_BS.value, true);
187
- } else {
188
- await this.updateData(this.dataList_BS.value, dontSendUpdate);
189
- }
190
- this.activeItem_BS.next(item);
191
- }
192
-
193
- /**
194
- * Removes an item from the data list.
195
- * The item is identified by its _id property.
196
- *
197
- * @param id - The id of the item to remove from the list
198
- * @param updateBy - Optional parameter for update tracking
199
- * @param dontSendUpdate - Optional flag to prevent sending update notification
200
- */
201
- async removeItem(id: string, updateBy?: T_UpdateItemBy, dontSendUpdate?: boolean): Promise<void> {
202
- const currentData = this.data;
203
- const index = currentData.findIndex(i => i._id === id);
204
- if (index !== -1) {
205
- currentData.splice(index, 1);
206
- if (this.deleteItem) {
207
- await this.deleteItem(id, updateBy);
208
- await this.updateData(this.dataList_BS.value, true);
209
- } else {
210
- await this.updateData(this.dataList_BS.value, dontSendUpdate);
211
- }
212
- }
213
- if (this.activeItem_BS.value?._id === id) {
214
- this.activeItem_BS.next(null);
215
- }
216
- }
217
-
218
- /**
219
- * Updates an existing item in the data list.
220
- * The item is identified by its _id property.
221
- *
222
- * @param item - The updated item
223
- * @param updateBy - Optional parameter for update tracking
224
- * @param dontSendUpdate - Optional flag to prevent sending update notification
225
- * @throws Error if the item is not found in the list
226
- */
227
- async updateItem(item: T_DataItem, updateBy?: T_UpdateItemBy, dontSendUpdate?: boolean): Promise<void> {
228
- const currentData = this.data;
229
- const index = currentData.findIndex(i => i._id === item._id);
230
- if (index !== -1) {
231
- currentData[index] = item;
232
- if (this.setItem) {
233
- await this.setItem(item, updateBy);
234
- await this.updateData(this.dataList_BS.value, true);
235
- } else {
236
- await this.updateData(this.dataList_BS.value, dontSendUpdate);
237
- }
238
- } else {
239
- throw new DyFM_Error({
240
- error: new Error(`Item not found! (${this.name})`),
241
- errorCode: 'DyFM-DLH-UI1',
242
- additionalContent: {
243
- item: item,
244
- },
245
- });
246
- }
247
- }
248
-
249
- setActiveItem(item: T_DataItem): void {
250
- this.activeItem_BS.next(item);
251
- }
252
- }
1
+ import { BehaviorSubject, Observable } from 'rxjs';
2
+
3
+ import { DyFM_DataListHandler_Settings } from './data-handler-settings.control-model';
4
+
5
+ import { DyFM_DataHandler } from './data-handler.control-model';
6
+ import { DyFM_Metadata } from '../../../_models/data-models/metadata.data-model';
7
+ import { DyFM_Error } from '../../../_models/control-models/error.control-model';
8
+ import { DyFM_Log } from '../../../_collections/utils/log.util';
9
+
10
+ /**
11
+ * A specialized data handler for managing arrays of data items.
12
+ * Extends DyFM_DataHandler to provide additional functionality for handling lists of data.
13
+ *
14
+ * @template T_DataList - The type of the data list (must be an array of T_DataItem)
15
+ * @template T_DependencyData - The type of dependency data (defaults to any)
16
+ * @template T_DataLoadBy - The type used to identify how data should be loaded (defaults to string)
17
+ * @template T_DataItem - The type of individual items in the list (must extend DyFM_Metadata)
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * // Create a data list handler for user messages
22
+ * const messagesHandler = new DyFM_DataListHandler<UserMessage[]>({
23
+ * get: async (userId: string): Promise<UserMessage[]> => {
24
+ * return await userApiService.getUserMessages(userId, 0, 100);
25
+ * }
26
+ * });
27
+ *
28
+ * // Access the data list
29
+ * const messages = messagesHandler.dataList;
30
+ *
31
+ * // Add a new message
32
+ * messagesHandler.addItem(newMessage);
33
+ *
34
+ * // Update an existing message
35
+ * messagesHandler.updateItem(updatedMessage);
36
+ *
37
+ * // Subscribe to changes
38
+ * messagesHandler.dataList$.subscribe(messages => {
39
+ * console.log('Messages updated:', messages);
40
+ * });
41
+ * ```
42
+ */
43
+ export class DyFM_DataListHandler<
44
+ T_DataItem extends DyFM_Metadata,
45
+ T_DependencyData extends DyFM_Metadata = any,
46
+ T_DataLoadBy = string,
47
+ T_UpdateItemBy = string,
48
+ > extends DyFM_DataHandler<T_DataItem[], T_DependencyData, T_DataLoadBy> {
49
+
50
+ protected readonly setItem: (item: T_DataItem, updateBy?: T_UpdateItemBy) => Promise<T_DataItem>;
51
+ protected readonly deleteItem: (id: string, updateBy?: T_UpdateItemBy) => Promise<void>;
52
+
53
+ /**
54
+ * BehaviorSubject that holds the current data list.
55
+ * Computed from the base data_BS BehaviorSubject, ensuring it always returns an array.
56
+ */
57
+ protected readonly dataList_BS: BehaviorSubject<T_DataItem[]>;
58
+
59
+ /**
60
+ * Observable that holds the current data list.
61
+ * Computed from the base data$ Observable, ensuring it always returns an array.
62
+ */
63
+ readonly dataList$: Observable<T_DataItem[]>;
64
+
65
+ /**
66
+ * BehaviorSubject that holds the currently active item.
67
+ */
68
+ readonly activeItem_BS: BehaviorSubject<T_DataItem>;
69
+
70
+ /**
71
+ * Observable that holds the currently active item.
72
+ */
73
+ readonly activeItem$: Observable<T_DataItem>;
74
+
75
+ /**
76
+ * Gets the current data list.
77
+ * @returns The current array of data items
78
+ */
79
+ override get data(): T_DataItem[] {
80
+ return this.dataList_BS.value;
81
+ }
82
+
83
+ /**
84
+ * Gets the current data list.
85
+ * Alias for data getter.
86
+ * @returns The current array of data items
87
+ */
88
+ get dataList(): T_DataItem[] {
89
+ return this.dataList_BS.value;
90
+ }
91
+
92
+ /**
93
+ * Creates a new instance of DyFM_DataListHandler.
94
+ *
95
+ * @param set - Configuration settings for the data handler
96
+ * @param skipDependencyConnections - Optional flag to skip dependency connections during construction
97
+ */
98
+ constructor(
99
+ set: DyFM_DataListHandler_Settings<T_DataItem, T_DependencyData, T_DataLoadBy, T_UpdateItemBy>,
100
+ /** is in construct?
101
+ * so the dependent data handlers are not added here, but in the extended class */
102
+ skipDependencyConnections?: boolean,
103
+ ) {
104
+ super(set, skipDependencyConnections);
105
+
106
+ // Initialize dataList BehaviorSubject and Observable
107
+ this.dataList_BS = new BehaviorSubject<T_DataItem[]>([]);
108
+ this.dataList$ = this.dataList_BS.asObservable();
109
+
110
+ // Initialize activeItem BehaviorSubject and Observable
111
+ this.activeItem_BS = new BehaviorSubject<T_DataItem>(null);
112
+ this.activeItem$ = this.activeItem_BS.asObservable();
113
+
114
+ // Subscribe to data changes to update dataList
115
+ this.data$.subscribe(data => {
116
+ const dataList = Array.isArray(data) ? data : [];
117
+ this.dataList_BS.next(dataList);
118
+ });
119
+
120
+ if (set.setItem) {
121
+ this.setItem = set.setItem;
122
+ }
123
+
124
+ if (set.deleteItem) {
125
+ this.deleteItem = set.deleteItem;
126
+ }
127
+
128
+ this.getPostProcesses.push((data: T_DataItem[]) => {
129
+ // check if data is an array
130
+ if (!Array.isArray(data) ) {
131
+ console.error(
132
+ `DYNAMO DataListHandler (${this.name}) ERROR: ` +
133
+ `\nData is not an array!:` +
134
+ '\n\n', data
135
+ );
136
+ throw new Error(`Data is not an array! (${this.name})`);
137
+ }
138
+
139
+ return data;
140
+ });
141
+
142
+ if (!skipDependencyConnections) {
143
+ if (set.dependencyDataHandler) {
144
+ this.addDependencyDataHandler(set.dependencyDataHandler);
145
+ }
146
+
147
+ if (set.dependentDataHandlers) {
148
+ this.addDependentDataHandlers(set.dependentDataHandlers, true);
149
+ }
150
+ }
151
+ }
152
+
153
+ override async reloadData(loadBy?: T_DataLoadBy): Promise<T_DataItem[]> {
154
+ try {
155
+ const setActiveItem = !this.activeItem_BS.value || this.activeItem_BS.value?._id !== loadBy;
156
+ const dataList = await super.reloadData(loadBy);
157
+ if (setActiveItem && dataList.length > 0) {
158
+ this.setActiveItem(dataList[0]);
159
+ }
160
+ return dataList;
161
+ } catch (error) {
162
+ DyFM_Log.error(`Error reloading DyFM_DataListHandler (${this.name}):`, error);
163
+
164
+ throw error;
165
+ }
166
+ }
167
+
168
+ override clear(dontClearDependents?: boolean): void {
169
+ super.clear(dontClearDependents);
170
+ this.activeItem_BS.next(null);
171
+ }
172
+
173
+ /**
174
+ * Adds a new item to the data list.
175
+ *
176
+ * @param item - The item to add to the list
177
+ * @param updateBy - Optional parameter for update tracking
178
+ * @param dontSendUpdate - Optional flag to prevent sending update notification
179
+ */
180
+ async addItem(item: T_DataItem, updateBy?: T_UpdateItemBy, dontSendUpdate?: boolean): Promise<void> {
181
+ const currentData = this.data;
182
+ currentData.push(item);
183
+ if (this.setItem && !dontSendUpdate) {
184
+ await this.setItem(item, updateBy);
185
+ // dont send update because we already sent it to the setItem function
186
+ await this.updateData(this.dataList_BS.value, true);
187
+ } else {
188
+ await this.updateData(this.dataList_BS.value, dontSendUpdate);
189
+ }
190
+ this.activeItem_BS.next(item);
191
+ }
192
+
193
+ /**
194
+ * Removes an item from the data list.
195
+ * The item is identified by its _id property.
196
+ *
197
+ * @param id - The id of the item to remove from the list
198
+ * @param updateBy - Optional parameter for update tracking
199
+ * @param dontSendUpdate - Optional flag to prevent sending update notification
200
+ */
201
+ async removeItem(id: string, updateBy?: T_UpdateItemBy, dontSendUpdate?: boolean): Promise<void> {
202
+ const currentData = this.data;
203
+ const index = currentData.findIndex(i => i._id === id);
204
+ if (index !== -1) {
205
+ currentData.splice(index, 1);
206
+ if (this.deleteItem) {
207
+ await this.deleteItem(id, updateBy);
208
+ await this.updateData(this.dataList_BS.value, true);
209
+ } else {
210
+ await this.updateData(this.dataList_BS.value, dontSendUpdate);
211
+ }
212
+ }
213
+ if (this.activeItem_BS.value?._id === id) {
214
+ this.activeItem_BS.next(null);
215
+ }
216
+ }
217
+
218
+ /**
219
+ * Updates an existing item in the data list.
220
+ * The item is identified by its _id property.
221
+ *
222
+ * @param item - The updated item
223
+ * @param updateBy - Optional parameter for update tracking
224
+ * @param dontSendUpdate - Optional flag to prevent sending update notification
225
+ * @throws Error if the item is not found in the list
226
+ */
227
+ async updateItem(item: T_DataItem, updateBy?: T_UpdateItemBy, dontSendUpdate?: boolean): Promise<void> {
228
+ const currentData = this.data;
229
+ const index = currentData.findIndex(i => i._id === item._id);
230
+ if (index !== -1) {
231
+ currentData[index] = item;
232
+ if (this.setItem) {
233
+ await this.setItem(item, updateBy);
234
+ await this.updateData(this.dataList_BS.value, true);
235
+ } else {
236
+ await this.updateData(this.dataList_BS.value, dontSendUpdate);
237
+ }
238
+ } else {
239
+ throw new DyFM_Error({
240
+ error: new Error(`Item not found! (${this.name})`),
241
+ errorCode: 'DyFM-DLH-UI1',
242
+ additionalContent: {
243
+ item: item,
244
+ },
245
+ });
246
+ }
247
+ }
248
+
249
+ setActiveItem(item: T_DataItem): void {
250
+ this.activeItem_BS.next(item);
251
+ }
252
+ }