@futdevpro/fsm-dynamo 1.16.7 → 1.16.10

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