@futdevpro/fsm-dynamo 1.15.18 → 1.15.20

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 (526) 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-fr047-fc-foundation.md +48 -0
  19. package/build/_models/data-models/errors.data-model.d.ts +43 -0
  20. package/build/_models/data-models/errors.data-model.d.ts.map +1 -1
  21. package/build/_models/data-models/errors.data-model.js +30 -0
  22. package/build/_models/data-models/errors.data-model.js.map +1 -1
  23. package/build/_modules/socket/_models/sck-socket-event.control-model.js +1 -1
  24. package/eslint.config.js +4 -4
  25. package/nodemon.json +22 -22
  26. package/package.json +11 -11
  27. package/scripts/crypto/CRYPTO-STABILITY-SOLUTION.md +196 -196
  28. package/scripts/crypto/README.md +113 -113
  29. package/scripts/crypto/demo-crypto-stability.js +120 -120
  30. package/scripts/crypto/stress-test-crypto.js +379 -379
  31. package/scripts/run-coverage-tests.js +24 -24
  32. package/spec/support/helpers/ts-node-helper.js +9 -9
  33. package/spec/support/jasmine.coverage.json +23 -23
  34. package/spec/support/jasmine.json +24 -24
  35. package/src/_collections/constants/data-sizes.const.ts +40 -40
  36. package/src/_collections/constants/error-defaults.const.ts +20 -20
  37. package/src/_collections/constants/global-settings.const.ts +24 -24
  38. package/src/_collections/constants/numbers.const.ts +40 -40
  39. package/src/_collections/constants/times.const.ts +45 -45
  40. package/src/_collections/utils/array.util.spec.ts +306 -306
  41. package/src/_collections/utils/array.util.ts +813 -813
  42. package/src/_collections/utils/async.util.spec.ts +354 -354
  43. package/src/_collections/utils/async.util.ts +197 -197
  44. package/src/_collections/utils/data.util.spec.ts +345 -345
  45. package/src/_collections/utils/data.util.ts +226 -226
  46. package/src/_collections/utils/json-error-helper.util.spec.ts +521 -521
  47. package/src/_collections/utils/json-error-helper.util.ts +301 -301
  48. package/src/_collections/utils/log.util.spec.ts +975 -975
  49. package/src/_collections/utils/log.util.ts +665 -665
  50. package/src/_collections/utils/math/box-bounds.spec.ts +73 -73
  51. package/src/_collections/utils/math/box-bounds.util.ts +183 -183
  52. package/src/_collections/utils/math/math.util.spec.ts +94 -94
  53. package/src/_collections/utils/math/math.util.ts +141 -141
  54. package/src/_collections/utils/math/random.util.spec.ts +82 -82
  55. package/src/_collections/utils/math/random.util.ts +139 -139
  56. package/src/_collections/utils/math/trigonometry.util.spec.ts +57 -57
  57. package/src/_collections/utils/math/trigonometry.util.ts +102 -102
  58. package/src/_collections/utils/math/vector2.util.spec.ts +94 -94
  59. package/src/_collections/utils/math/vector2.util.ts +653 -653
  60. package/src/_collections/utils/object.util.spec.ts +646 -646
  61. package/src/_collections/utils/regex/password-regex.util.spec.ts +51 -51
  62. package/src/_collections/utils/regex/password-regex.util.ts +65 -65
  63. package/src/_collections/utils/regex/regex.util.spec.ts +42 -42
  64. package/src/_collections/utils/regex/regex.util.ts +6 -6
  65. package/src/_collections/utils/regex/username-regex.util.spec.ts +61 -61
  66. package/src/_collections/utils/regex/username-regex.util.ts +35 -35
  67. package/src/_collections/utils/round-list.util.spec.ts +79 -79
  68. package/src/_collections/utils/round-list.util.ts +162 -162
  69. package/src/_collections/utils/stack.util.spec.ts +372 -372
  70. package/src/_collections/utils/stack.util.ts +164 -164
  71. package/src/_collections/utils/string-case.util.spec.ts +441 -441
  72. package/src/_collections/utils/string-case.util.ts +362 -362
  73. package/src/_collections/utils/string.util.spec.ts +975 -975
  74. package/src/_collections/utils/string.util.ts +449 -449
  75. package/src/_collections/utils/time.util.spec.ts +50 -50
  76. package/src/_collections/utils/time.util.ts +481 -481
  77. package/src/_collections/utils/type-cloning-facility.util.spec.ts +51 -51
  78. package/src/_collections/utils/type-cloning-facility.util.ts +168 -168
  79. package/src/_collections/utils/utilities.util.spec.ts +201 -201
  80. package/src/_collections/utils/utilities.util.ts +68 -68
  81. package/src/_collections/utils/uuid.util.spec.ts +30 -30
  82. package/src/_collections/utils/uuid.util.ts +50 -50
  83. package/src/_enums/basic-property-type.enum.ts +20 -20
  84. package/src/_enums/data-model-type.enum.ts +29 -29
  85. package/src/_enums/environment-flag.enum.ts +28 -28
  86. package/src/_enums/error-level.enum.ts +28 -28
  87. package/src/_enums/http/http-call-type.enum.ts +43 -43
  88. package/src/_enums/http/http-event-type.enum.ts +40 -40
  89. package/src/_enums/http/http-response-type.enum.ts +18 -18
  90. package/src/_enums/log-style.enum.ts +44 -44
  91. package/src/_enums/server-connection-status.enum.ts +6 -6
  92. package/src/_enums/time/day-of-week.enum.ts +55 -55
  93. package/src/_enums/time/month.enum.ts +25 -25
  94. package/src/_enums/time/relative-date.enum.ts +24 -24
  95. package/src/_models/control-models/data-model-params.control-model.spec.ts +85 -85
  96. package/src/_models/control-models/data-model-params.control-model.ts +300 -300
  97. package/src/_models/control-models/data-property-params.control-model.spec.ts +93 -93
  98. package/src/_models/control-models/data-property-params.control-model.ts +201 -201
  99. package/src/_models/control-models/error.control-model.spec.ts +912 -912
  100. package/src/_models/control-models/error.control-model.ts +1215 -1215
  101. package/src/_models/control-models/http/http-error-response.control-model.spec.ts +116 -116
  102. package/src/_models/control-models/http/http-error-response.control-model.ts +52 -52
  103. package/src/_models/control-models/http/http-headers.control-model.spec.ts +25 -25
  104. package/src/_models/control-models/http/http-headers.control-model.ts +124 -124
  105. package/src/_models/control-models/http/http-response.model-base.spec.ts +46 -46
  106. package/src/_models/control-models/http/http-response.model-base.ts +57 -57
  107. package/src/_models/control-models/poll.control-model.spec.ts +63 -63
  108. package/src/_models/control-models/poll.control-model.ts +151 -151
  109. package/src/_models/control-models/range-value.control-model.spec.ts +187 -187
  110. package/src/_models/control-models/range-value.control-model.ts +289 -289
  111. package/src/_models/control-models/server-status.control-model.spec.ts +66 -66
  112. package/src/_models/control-models/server-status.control-model.ts +85 -85
  113. package/src/_models/control-models/service-endpoint-settings-base.control-model.spec.ts +145 -145
  114. package/src/_models/control-models/service-endpoint-settings-base.control-model.ts +186 -186
  115. package/src/_models/data-models/errors.data-model.spec.ts +71 -71
  116. package/src/_models/data-models/errors.data-model.ts +148 -91
  117. package/src/_models/data-models/metadata.data-model.spec.ts +184 -184
  118. package/src/_models/data-models/metadata.data-model.ts +128 -128
  119. package/src/_models/interfaces/box-bounds.interface.ts +7 -7
  120. package/src/_models/interfaces/environment/global-log-settings.interface.ts +86 -86
  121. package/src/_models/interfaces/environment/global-settings.interface.ts +47 -47
  122. package/src/_models/interfaces/error-defaults.interface.ts +11 -11
  123. package/src/_models/interfaces/paged.interface.ts +12 -12
  124. package/src/_models/interfaces/random-weight.interface.ts +7 -7
  125. package/src/_models/interfaces/route-settings.interface.ts +15 -15
  126. package/src/_models/interfaces/search-query.interface.ts +23 -23
  127. package/src/_models/interfaces/search-result.interface.ts +5 -5
  128. package/src/_models/interfaces/server-error-statistics.interface.ts +24 -24
  129. package/src/_models/interfaces/vector2.interface.ts +20 -20
  130. package/src/_models/types/db-filter.type.ts +110 -110
  131. package/src/_models/types/db-sort.type.ts +4 -4
  132. package/src/_models/types/ds-filter.type.ts +68 -68
  133. package/src/_models/types/ds-sort.type.ts +21 -21
  134. package/src/_modules/ai/_collections/ai-model-ref.util.ts +88 -88
  135. package/src/_modules/ai/_collections/ai-model-registry.util.spec.ts +37 -37
  136. package/src/_modules/ai/_collections/ai-model-registry.util.ts +30 -30
  137. package/src/_modules/ai/_enums/ai-message-role.enum.ts +7 -7
  138. package/src/_modules/ai/_enums/ai-model-type.enum.ts +7 -7
  139. package/src/_modules/ai/_enums/ai-provider.enum.ts +7 -7
  140. package/src/_modules/ai/_models/ai-call-settings.interface.ts +84 -84
  141. package/src/_modules/ai/_models/ai-embedding-request.interface.ts +20 -20
  142. package/src/_modules/ai/_models/ai-embedding-response.interface.ts +26 -26
  143. package/src/_modules/ai/_models/ai-llm-request.interface.ts +24 -24
  144. package/src/_modules/ai/_models/ai-llm-response.interface.ts +30 -30
  145. package/src/_modules/ai/_models/ai-message.interface.ts +12 -12
  146. package/src/_modules/ai/_models/ai-model-capabilities.interface.ts +35 -35
  147. package/src/_modules/ai/_models/ai-model-info.interface.ts +63 -63
  148. package/src/_modules/ai/_models/ai-model-settings-schema.interface.ts +52 -52
  149. package/src/_modules/ai/_models/ai-provider-capabilities.interface.ts +28 -28
  150. package/src/_modules/ai/_models/ai-settings.interface.ts +17 -17
  151. package/src/_modules/ai/_models/ai-tool-call.interface.ts +18 -18
  152. package/src/_modules/ai/_models/ai-tool-handler.type.ts +11 -11
  153. package/src/_modules/ai/_models/ai-tool-result.interface.ts +16 -16
  154. package/src/_modules/ai/_models/ai-tool.interface.ts +16 -16
  155. package/src/_modules/ai/_models/ai-user-provider-config.control-model.ts +29 -29
  156. package/src/_modules/ai/_modules/anthropic/_collections/aai-models.const.ts +81 -81
  157. package/src/_modules/ai/_modules/anthropic/_enums/aai-model.enum.ts +19 -19
  158. package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.spec.ts +28 -28
  159. package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.ts +23 -23
  160. package/src/_modules/ai/_modules/anthropic/_models/aai-client-options.interface.ts +10 -10
  161. package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.spec.ts +22 -22
  162. package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.ts +27 -27
  163. package/src/_modules/ai/_modules/anthropic/_models/aai-user-provider-config.control-model.ts +20 -20
  164. package/src/_modules/ai/_modules/anthropic/index.ts +14 -14
  165. package/src/_modules/ai/_modules/document-ai/_models/dai-embedding-info.interface.ts +12 -12
  166. package/src/_modules/ai/_modules/document-ai/_models/dai-vector-search-params.interface.ts +22 -22
  167. package/src/_modules/ai/_modules/document-ai/index.ts +4 -4
  168. package/src/_modules/ai/_modules/fdp-ai/_collections/fdpai-models.const.ts +34 -34
  169. package/src/_modules/ai/_modules/fdp-ai/_enums/fdpai-model.enum.ts +6 -6
  170. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-call-settings.control-model.ts +19 -19
  171. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-client-options.interface.ts +11 -11
  172. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-settings.control-model.ts +24 -24
  173. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-user-provider-config.control-model.ts +20 -20
  174. package/src/_modules/ai/_modules/fdp-ai/index.ts +11 -11
  175. package/src/_modules/ai/_modules/google-ai/_collections/gai-models.const.ts +99 -99
  176. package/src/_modules/ai/_modules/google-ai/_enums/gai-model.enum.ts +16 -16
  177. package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.spec.ts +28 -28
  178. package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.ts +21 -21
  179. package/src/_modules/ai/_modules/google-ai/_models/gai-client-options.interface.ts +8 -8
  180. package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.spec.ts +22 -22
  181. package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.ts +25 -25
  182. package/src/_modules/ai/_modules/google-ai/_models/gai-user-provider-config.control-model.ts +20 -20
  183. package/src/_modules/ai/_modules/google-ai/index.ts +14 -14
  184. package/src/_modules/ai/_modules/local-ai/_collections/lai-models.const.ts +53 -53
  185. package/src/_modules/ai/_modules/local-ai/_enums/lai-model.enum.ts +6 -6
  186. package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.spec.ts +28 -28
  187. package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.ts +18 -18
  188. package/src/_modules/ai/_modules/local-ai/_models/lai-client-options.interface.ts +9 -9
  189. package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.spec.ts +22 -22
  190. package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.ts +23 -23
  191. package/src/_modules/ai/_modules/local-ai/index.ts +14 -14
  192. package/src/_modules/ai/_modules/open-ai/_collections/oai-embedding-model-dimensions.const.ts +7 -7
  193. package/src/_modules/ai/_modules/open-ai/_collections/oai-models.const.ts +252 -252
  194. package/src/_modules/ai/_modules/open-ai/_enums/oai-model.enum.ts +179 -179
  195. package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.spec.ts +28 -28
  196. package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.ts +21 -21
  197. package/src/_modules/ai/_modules/open-ai/_models/oai-client-options.interface.ts +81 -81
  198. package/src/_modules/ai/_modules/open-ai/_models/oai-embedding-info.interface.ts +13 -13
  199. package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.spec.ts +22 -22
  200. package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.ts +25 -25
  201. package/src/_modules/ai/_modules/open-ai/_models/oai-user-provider-config.control-model.ts +21 -21
  202. package/src/_modules/ai/_modules/open-ai/index.ts +28 -28
  203. package/src/_modules/ai/index.ts +27 -27
  204. package/src/_modules/ci-tools/_enums/cit-ci-result-code.enum.ts +11 -11
  205. package/src/_modules/ci-tools/_enums/cit-ci-step-result-code.enum.ts +9 -9
  206. package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.spec.ts +58 -58
  207. package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.ts +77 -77
  208. package/src/_modules/ci-tools/_models/cit-ci-step-result.interface.ts +12 -12
  209. package/src/_modules/ci-tools/index.ts +8 -8
  210. package/src/_modules/crypto/_collections/crypto.util.simple.spec.ts +512 -512
  211. package/src/_modules/crypto/index.ts +13 -13
  212. package/src/_modules/custom-data/_collections/cud-module-settings.const.ts +21 -21
  213. package/src/_modules/custom-data/_models/cud.data-model.spec.ts +38 -38
  214. package/src/_modules/custom-data/_models/cud.data-model.ts +39 -39
  215. package/src/_modules/custom-data/index.ts +10 -10
  216. package/src/_modules/data-handler/_models/data-handler-settings.control-model.spec.ts +110 -110
  217. package/src/_modules/data-handler/_models/data-handler-settings.control-model.ts +110 -110
  218. package/src/_modules/data-handler/_models/data-handler.control-model.spec.ts +445 -445
  219. package/src/_modules/data-handler/_models/data-handler.control-model.ts +459 -459
  220. package/src/_modules/data-handler/_models/data-list-handler.control-model.spec.ts +263 -263
  221. package/src/_modules/data-handler/_models/data-list-handler.control-model.ts +252 -252
  222. package/src/_modules/data-handler/_models/data-search-handler.control-model.spec.ts +417 -417
  223. package/src/_modules/data-handler/_models/data-search-handler.control-model.ts +390 -390
  224. package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.spec.ts +374 -374
  225. package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.ts +274 -274
  226. package/src/_modules/data-handler/index.ts +6 -6
  227. package/src/_modules/location/_collections/assets/country-codes-ISO-3166.json +3239 -3239
  228. package/src/_modules/location/_collections/assets/country-divisions-ISO-3166-all-list.json +19035 -19035
  229. package/src/_modules/location/_collections/assets/country-divisions-ISO-3166.json +4993 -4993
  230. package/src/_modules/location/_collections/assets/country-phone-codes.json +1203 -1203
  231. package/src/_modules/location/_collections/assets/country-subdivisions/afghanistan.json +137 -137
  232. package/src/_modules/location/_collections/assets/country-subdivisions/albania.json +49 -49
  233. package/src/_modules/location/_collections/assets/country-subdivisions/algeria.json +193 -193
  234. package/src/_modules/location/_collections/assets/country-subdivisions/andorra.json +29 -29
  235. package/src/_modules/location/_collections/assets/country-subdivisions/angola.json +73 -73
  236. package/src/_modules/location/_collections/assets/country-subdivisions/antigua-and-barbuda.json +33 -33
  237. package/src/_modules/location/_collections/assets/country-subdivisions/argentina.json +97 -97
  238. package/src/_modules/location/_collections/assets/country-subdivisions/armenia.json +45 -45
  239. package/src/_modules/location/_collections/assets/country-subdivisions/australia.json +33 -33
  240. package/src/_modules/location/_collections/assets/country-subdivisions/austria.json +37 -37
  241. package/src/_modules/location/_collections/assets/country-subdivisions/azerbaijan.json +5 -5
  242. package/src/_modules/location/_collections/assets/country-subdivisions/bahamas.json +125 -125
  243. package/src/_modules/location/_collections/assets/country-subdivisions/bahrain.json +21 -21
  244. package/src/_modules/location/_collections/assets/country-subdivisions/bangladesh.json +29 -29
  245. package/src/_modules/location/_collections/assets/country-subdivisions/barbados.json +45 -45
  246. package/src/_modules/location/_collections/assets/country-subdivisions/belarus.json +29 -29
  247. package/src/_modules/location/_collections/assets/country-subdivisions/belgium.json +13 -13
  248. package/src/_modules/location/_collections/assets/country-subdivisions/belize.json +25 -25
  249. package/src/_modules/location/_collections/assets/country-subdivisions/benin.json +49 -49
  250. package/src/_modules/location/_collections/assets/country-subdivisions/bhutan.json +81 -81
  251. package/src/_modules/location/_collections/assets/country-subdivisions/bolivia.json +37 -37
  252. package/src/_modules/location/_collections/assets/country-subdivisions/bosnia-and-herzegovina.json +13 -13
  253. package/src/_modules/location/_collections/assets/country-subdivisions/botswana.json +65 -65
  254. package/src/_modules/location/_collections/assets/country-subdivisions/brazil.json +109 -109
  255. package/src/_modules/location/_collections/assets/country-subdivisions/brunei-darussalam.json +17 -17
  256. package/src/_modules/location/_collections/assets/country-subdivisions/bulgaria.json +113 -113
  257. package/src/_modules/location/_collections/assets/country-subdivisions/burkina-faso.json +53 -53
  258. package/src/_modules/location/_collections/assets/country-subdivisions/burundi.json +69 -69
  259. package/src/_modules/location/_collections/assets/country-subdivisions/cambodia.json +97 -97
  260. package/src/_modules/location/_collections/assets/country-subdivisions/cameroon.json +41 -41
  261. package/src/_modules/location/_collections/assets/country-subdivisions/canada.json +79 -79
  262. package/src/_modules/location/_collections/assets/country-subdivisions/cape-verde.json +9 -9
  263. package/src/_modules/location/_collections/assets/country-subdivisions/central-african-republic.json +69 -69
  264. package/src/_modules/location/_collections/assets/country-subdivisions/chad.json +89 -89
  265. package/src/_modules/location/_collections/assets/country-subdivisions/chile.json +61 -61
  266. package/src/_modules/location/_collections/assets/country-subdivisions/china.json +205 -205
  267. package/src/_modules/location/_collections/assets/country-subdivisions/colombia.json +133 -133
  268. package/src/_modules/location/_collections/assets/country-subdivisions/comoros.json +13 -13
  269. package/src/_modules/location/_collections/assets/country-subdivisions/congo-the-democratic-republic-of-the.json +45 -45
  270. package/src/_modules/location/_collections/assets/country-subdivisions/congo.json +49 -49
  271. package/src/_modules/location/_collections/assets/country-subdivisions/costa-rica.json +29 -29
  272. package/src/_modules/location/_collections/assets/country-subdivisions/cote-d-ivoire-republic-of.json +77 -77
  273. package/src/_modules/location/_collections/assets/country-subdivisions/croatia.json +85 -85
  274. package/src/_modules/location/_collections/assets/country-subdivisions/cuba.json +65 -65
  275. package/src/_modules/location/_collections/assets/country-subdivisions/cyprus.json +25 -25
  276. package/src/_modules/location/_collections/assets/country-subdivisions/czech-republic.json +57 -57
  277. package/src/_modules/location/_collections/assets/country-subdivisions/denmark.json +21 -21
  278. package/src/_modules/location/_collections/assets/country-subdivisions/djibouti.json +25 -25
  279. package/src/_modules/location/_collections/assets/country-subdivisions/dominica.json +41 -41
  280. package/src/_modules/location/_collections/assets/country-subdivisions/dominican-republic.json +41 -41
  281. package/src/_modules/location/_collections/assets/country-subdivisions/ecuador.json +97 -97
  282. package/src/_modules/location/_collections/assets/country-subdivisions/egypt.json +117 -117
  283. package/src/_modules/location/_collections/assets/country-subdivisions/el-salvador.json +57 -57
  284. package/src/_modules/location/_collections/assets/country-subdivisions/equatorial-guinea.json +9 -9
  285. package/src/_modules/location/_collections/assets/country-subdivisions/eritrea.json +25 -25
  286. package/src/_modules/location/_collections/assets/country-subdivisions/estonia.json +61 -61
  287. package/src/_modules/location/_collections/assets/country-subdivisions/ethiopia.json +45 -45
  288. package/src/_modules/location/_collections/assets/country-subdivisions/fiji.json +21 -21
  289. package/src/_modules/location/_collections/assets/country-subdivisions/finland.json +77 -77
  290. package/src/_modules/location/_collections/assets/country-subdivisions/france.json +133 -133
  291. package/src/_modules/location/_collections/assets/country-subdivisions/gabon.json +37 -37
  292. package/src/_modules/location/_collections/assets/country-subdivisions/gambia.json +25 -25
  293. package/src/_modules/location/_collections/assets/country-subdivisions/georgia.json +49 -49
  294. package/src/_modules/location/_collections/assets/country-subdivisions/germany.json +65 -65
  295. package/src/_modules/location/_collections/assets/country-subdivisions/ghana.json +41 -41
  296. package/src/_modules/location/_collections/assets/country-subdivisions/greece.json +53 -53
  297. package/src/_modules/location/_collections/assets/country-subdivisions/greenland.json +17 -17
  298. package/src/_modules/location/_collections/assets/country-subdivisions/grenada.json +29 -29
  299. package/src/_modules/location/_collections/assets/country-subdivisions/guatemala.json +89 -89
  300. package/src/_modules/location/_collections/assets/country-subdivisions/guinea-bissau.json +13 -13
  301. package/src/_modules/location/_collections/assets/country-subdivisions/guinea.json +33 -33
  302. package/src/_modules/location/_collections/assets/country-subdivisions/guyana.json +41 -41
  303. package/src/_modules/location/_collections/assets/country-subdivisions/haiti.json +41 -41
  304. package/src/_modules/location/_collections/assets/country-subdivisions/honduras.json +73 -73
  305. package/src/_modules/location/_collections/assets/country-subdivisions/hong-kong.json +4 -4
  306. package/src/_modules/location/_collections/assets/country-subdivisions/hungary.json +173 -173
  307. package/src/_modules/location/_collections/assets/country-subdivisions/iceland.json +37 -37
  308. package/src/_modules/location/_collections/assets/country-subdivisions/india.json +181 -181
  309. package/src/_modules/location/_collections/assets/country-subdivisions/indonesia.json +29 -29
  310. package/src/_modules/location/_collections/assets/country-subdivisions/iran-islamic-republic-of.json +125 -125
  311. package/src/_modules/location/_collections/assets/country-subdivisions/iraq.json +73 -73
  312. package/src/_modules/location/_collections/assets/country-subdivisions/ireland.json +17 -17
  313. package/src/_modules/location/_collections/assets/country-subdivisions/israel.json +25 -25
  314. package/src/_modules/location/_collections/assets/country-subdivisions/italy.json +81 -81
  315. package/src/_modules/location/_collections/assets/country-subdivisions/jamaica.json +57 -57
  316. package/src/_modules/location/_collections/assets/country-subdivisions/japan.json +189 -189
  317. package/src/_modules/location/_collections/assets/country-subdivisions/jordan.json +49 -49
  318. package/src/_modules/location/_collections/assets/country-subdivisions/kazakhstan.json +65 -65
  319. package/src/_modules/location/_collections/assets/country-subdivisions/kenya.json +33 -33
  320. package/src/_modules/location/_collections/assets/country-subdivisions/kiribati.json +13 -13
  321. package/src/_modules/location/_collections/assets/country-subdivisions/korea-democratic-people-s-republic-of.json +45 -45
  322. package/src/_modules/location/_collections/assets/country-subdivisions/korea-republic-of.json +69 -69
  323. package/src/_modules/location/_collections/assets/country-subdivisions/kuwait.json +25 -25
  324. package/src/_modules/location/_collections/assets/country-subdivisions/kyrgyzstan.json +33 -33
  325. package/src/_modules/location/_collections/assets/country-subdivisions/lao-people-s-democratic-republic.json +73 -73
  326. package/src/_modules/location/_collections/assets/country-subdivisions/latvia.json +477 -477
  327. package/src/_modules/location/_collections/assets/country-subdivisions/lebanon.json +33 -33
  328. package/src/_modules/location/_collections/assets/country-subdivisions/lesotho.json +41 -41
  329. package/src/_modules/location/_collections/assets/country-subdivisions/liberia.json +61 -61
  330. package/src/_modules/location/_collections/assets/country-subdivisions/libyan-arab-jamahiriya.json +89 -89
  331. package/src/_modules/location/_collections/assets/country-subdivisions/liechtenstein.json +45 -45
  332. package/src/_modules/location/_collections/assets/country-subdivisions/lithuania.json +41 -41
  333. package/src/_modules/location/_collections/assets/country-subdivisions/luxembourg.json +13 -13
  334. package/src/_modules/location/_collections/assets/country-subdivisions/macedonia-the-former-yugoslav-republic-of.json +337 -337
  335. package/src/_modules/location/_collections/assets/country-subdivisions/madagascar.json +25 -25
  336. package/src/_modules/location/_collections/assets/country-subdivisions/malawi.json +13 -13
  337. package/src/_modules/location/_collections/assets/country-subdivisions/malaysia.json +81 -81
  338. package/src/_modules/location/_collections/assets/country-subdivisions/maldives.json +33 -33
  339. package/src/_modules/location/_collections/assets/country-subdivisions/mali.json +37 -37
  340. package/src/_modules/location/_collections/assets/country-subdivisions/malta.json +273 -273
  341. package/src/_modules/location/_collections/assets/country-subdivisions/marshall-islands.json +9 -9
  342. package/src/_modules/location/_collections/assets/country-subdivisions/mauritania.json +53 -53
  343. package/src/_modules/location/_collections/assets/country-subdivisions/mauritius.json +69 -69
  344. package/src/_modules/location/_collections/assets/country-subdivisions/mexico.json +161 -161
  345. package/src/_modules/location/_collections/assets/country-subdivisions/micronesia-federated-states-of.json +17 -17
  346. package/src/_modules/location/_collections/assets/country-subdivisions/moldova-republic-of.json +149 -149
  347. package/src/_modules/location/_collections/assets/country-subdivisions/monaco.json +69 -69
  348. package/src/_modules/location/_collections/assets/country-subdivisions/mongolia.json +89 -89
  349. package/src/_modules/location/_collections/assets/country-subdivisions/montenegro.json +93 -93
  350. package/src/_modules/location/_collections/assets/country-subdivisions/morocco.json +65 -65
  351. package/src/_modules/location/_collections/assets/country-subdivisions/mozambique.json +45 -45
  352. package/src/_modules/location/_collections/assets/country-subdivisions/myanmar.json +57 -57
  353. package/src/_modules/location/_collections/assets/country-subdivisions/namibia.json +57 -57
  354. package/src/_modules/location/_collections/assets/country-subdivisions/nauru.json +57 -57
  355. package/src/_modules/location/_collections/assets/country-subdivisions/nepal.json +21 -21
  356. package/src/_modules/location/_collections/assets/country-subdivisions/netherlands.json +91 -91
  357. package/src/_modules/location/_collections/assets/country-subdivisions/new-zealand.json +111 -111
  358. package/src/_modules/location/_collections/assets/country-subdivisions/nicaragua.json +69 -69
  359. package/src/_modules/location/_collections/assets/country-subdivisions/niger.json +33 -33
  360. package/src/_modules/location/_collections/assets/country-subdivisions/nigeria.json +149 -149
  361. package/src/_modules/location/_collections/assets/country-subdivisions/norway.json +85 -85
  362. package/src/_modules/location/_collections/assets/country-subdivisions/oman.json +37 -37
  363. package/src/_modules/location/_collections/assets/country-subdivisions/pakistan.json +33 -33
  364. package/src/_modules/location/_collections/assets/country-subdivisions/palau.json +65 -65
  365. package/src/_modules/location/_collections/assets/country-subdivisions/palestinian-territory-occupied.json +65 -65
  366. package/src/_modules/location/_collections/assets/country-subdivisions/panama.json +53 -53
  367. package/src/_modules/location/_collections/assets/country-subdivisions/papua-new-guinea.json +81 -81
  368. package/src/_modules/location/_collections/assets/country-subdivisions/paraguay.json +73 -73
  369. package/src/_modules/location/_collections/assets/country-subdivisions/peru.json +105 -105
  370. package/src/_modules/location/_collections/assets/country-subdivisions/philippines.json +69 -69
  371. package/src/_modules/location/_collections/assets/country-subdivisions/poland.json +65 -65
  372. package/src/_modules/location/_collections/assets/country-subdivisions/portugal.json +81 -81
  373. package/src/_modules/location/_collections/assets/country-subdivisions/qatar.json +29 -29
  374. package/src/_modules/location/_collections/assets/country-subdivisions/romania.json +169 -169
  375. package/src/_modules/location/_collections/assets/country-subdivisions/russian-federation.json +499 -499
  376. package/src/_modules/location/_collections/assets/country-subdivisions/rwanda.json +21 -21
  377. package/src/_modules/location/_collections/assets/country-subdivisions/saint-helena-ascension-and-tristan-da-cunha.json +13 -13
  378. package/src/_modules/location/_collections/assets/country-subdivisions/saint-kitts-and-nevis.json +9 -9
  379. package/src/_modules/location/_collections/assets/country-subdivisions/saint-lucia.json +45 -45
  380. package/src/_modules/location/_collections/assets/country-subdivisions/saint-vincent-and-the-grenadines.json +25 -25
  381. package/src/_modules/location/_collections/assets/country-subdivisions/samoa.json +45 -45
  382. package/src/_modules/location/_collections/assets/country-subdivisions/san-marino.json +37 -37
  383. package/src/_modules/location/_collections/assets/country-subdivisions/sao-tome-and-principe.json +9 -9
  384. package/src/_modules/location/_collections/assets/country-subdivisions/saudi-arabia.json +53 -53
  385. package/src/_modules/location/_collections/assets/country-subdivisions/senegal.json +57 -57
  386. package/src/_modules/location/_collections/assets/country-subdivisions/serbia.json +9 -9
  387. package/src/_modules/location/_collections/assets/country-subdivisions/seychelles.json +101 -101
  388. package/src/_modules/location/_collections/assets/country-subdivisions/sierra-leone.json +17 -17
  389. package/src/_modules/location/_collections/assets/country-subdivisions/singapore.json +21 -21
  390. package/src/_modules/location/_collections/assets/country-subdivisions/slovakia.json +33 -33
  391. package/src/_modules/location/_collections/assets/country-subdivisions/slovenia.json +841 -841
  392. package/src/_modules/location/_collections/assets/country-subdivisions/solomon-islands.json +41 -41
  393. package/src/_modules/location/_collections/assets/country-subdivisions/somalia.json +73 -73
  394. package/src/_modules/location/_collections/assets/country-subdivisions/south-africa.json +37 -37
  395. package/src/_modules/location/_collections/assets/country-subdivisions/south-sudan.json +41 -41
  396. package/src/_modules/location/_collections/assets/country-subdivisions/spain.json +346 -346
  397. package/src/_modules/location/_collections/assets/country-subdivisions/sri-lanka.json +37 -37
  398. package/src/_modules/location/_collections/assets/country-subdivisions/sudan.json +69 -69
  399. package/src/_modules/location/_collections/assets/country-subdivisions/suriname.json +41 -41
  400. package/src/_modules/location/_collections/assets/country-subdivisions/swaziland.json +17 -17
  401. package/src/_modules/location/_collections/assets/country-subdivisions/sweden.json +85 -85
  402. package/src/_modules/location/_collections/assets/country-subdivisions/switzerland.json +105 -105
  403. package/src/_modules/location/_collections/assets/country-subdivisions/syrian-arab-republic.json +57 -57
  404. package/src/_modules/location/_collections/assets/country-subdivisions/taiwan-province-of-china.json +93 -93
  405. package/src/_modules/location/_collections/assets/country-subdivisions/tajikistan.json +17 -17
  406. package/src/_modules/location/_collections/assets/country-subdivisions/tanzania-united-republic-of.json +105 -105
  407. package/src/_modules/location/_collections/assets/country-subdivisions/thailand.json +313 -313
  408. package/src/_modules/location/_collections/assets/country-subdivisions/timor-leste.json +53 -53
  409. package/src/_modules/location/_collections/assets/country-subdivisions/togo.json +21 -21
  410. package/src/_modules/location/_collections/assets/country-subdivisions/tonga.json +21 -21
  411. package/src/_modules/location/_collections/assets/country-subdivisions/trinidad-and-tobago.json +65 -65
  412. package/src/_modules/location/_collections/assets/country-subdivisions/tunisia.json +97 -97
  413. package/src/_modules/location/_collections/assets/country-subdivisions/turkey.json +325 -325
  414. package/src/_modules/location/_collections/assets/country-subdivisions/turkmenistan.json +25 -25
  415. package/src/_modules/location/_collections/assets/country-subdivisions/tuvalu.json +33 -33
  416. package/src/_modules/location/_collections/assets/country-subdivisions/uganda.json +17 -17
  417. package/src/_modules/location/_collections/assets/country-subdivisions/ukraine.json +109 -109
  418. package/src/_modules/location/_collections/assets/country-subdivisions/united-arab-emirates.json +29 -29
  419. package/src/_modules/location/_collections/assets/country-subdivisions/united-kingdom.json +1196 -1196
  420. package/src/_modules/location/_collections/assets/country-subdivisions/united-states-minor-outlying-islands.json +37 -37
  421. package/src/_modules/location/_collections/assets/country-subdivisions/united-states.json +286 -286
  422. package/src/_modules/location/_collections/assets/country-subdivisions/uruguay.json +77 -77
  423. package/src/_modules/location/_collections/assets/country-subdivisions/uzbekistan.json +57 -57
  424. package/src/_modules/location/_collections/assets/country-subdivisions/vanuatu.json +25 -25
  425. package/src/_modules/location/_collections/assets/country-subdivisions/venezuela.json +101 -101
  426. package/src/_modules/location/_collections/assets/country-subdivisions/viet-nam.json +257 -257
  427. package/src/_modules/location/_collections/assets/country-subdivisions/yemen.json +85 -85
  428. package/src/_modules/location/_collections/assets/country-subdivisions/zambia.json +37 -37
  429. package/src/_modules/location/_collections/assets/country-subdivisions/zimbabwe.json +41 -41
  430. package/src/_modules/location/_collections/loc-country-divisions.const.ts +10 -10
  431. package/src/_modules/location/_collections/loc-country-isos.const.ts +8 -8
  432. package/src/_modules/location/_collections/loc-regions.util.spec.ts +61 -61
  433. package/src/_modules/location/_collections/loc-regions.util.ts +137 -137
  434. package/src/_modules/location/_collections/loc.util.spec.ts +52 -52
  435. package/src/_modules/location/_collections/loc.util.ts +74 -74
  436. package/src/_modules/location/_enums/loc-region.enum.ts +14 -14
  437. package/src/_modules/location/_enums/loc-sub-region.enum.ts +31 -31
  438. package/src/_modules/location/_enums/loc-subdivision-region-type.enum.ts +47 -47
  439. package/src/_modules/location/_models/loc-coordinates.interface.ts +7 -7
  440. package/src/_modules/location/_models/loc-country-division.interface.ts +8 -8
  441. package/src/_modules/location/_models/loc-country-iso.interface.ts +23 -23
  442. package/src/_modules/location/_models/loc-country-phone-code.interface.ts +9 -9
  443. package/src/_modules/location/_models/loc-division-collection.interface.ts +12 -12
  444. package/src/_modules/location/_models/loc-division-region-data.interface.ts +9 -9
  445. package/src/_modules/location/_models/loc-geo-ip-location.interface.ts +27 -27
  446. package/src/_modules/location/index.ts +22 -22
  447. package/src/_modules/messaging/README.md +279 -279
  448. package/src/_modules/messaging/_collections/msg-module-settings.const.ts +46 -46
  449. package/src/_modules/messaging/_enums/msg-attachment-type.enum.ts +26 -26
  450. package/src/_modules/messaging/_enums/msg-delivery-status.enum.ts +17 -17
  451. package/src/_modules/messaging/_enums/msg-event-key.enum.ts +31 -31
  452. package/src/_modules/messaging/_enums/msg-participant-role.enum.ts +20 -20
  453. package/src/_modules/messaging/_enums/msg-provider-type.enum.ts +7 -7
  454. package/src/_modules/messaging/_enums/msg-type.enum.ts +23 -23
  455. package/src/_modules/messaging/_models/msg-attachment.interface.ts +46 -46
  456. package/src/_modules/messaging/_models/msg-conversation.data-model.spec.ts +69 -69
  457. package/src/_modules/messaging/_models/msg-conversation.data-model.ts +96 -96
  458. package/src/_modules/messaging/_models/msg-mention.interface.ts +29 -29
  459. package/src/_modules/messaging/_models/msg-message.data-model.spec.ts +79 -79
  460. package/src/_modules/messaging/_models/msg-message.data-model.ts +127 -127
  461. package/src/_modules/messaging/_models/msg-participant.interface.ts +46 -46
  462. package/src/_modules/messaging/_models/msg-reaction.interface.ts +20 -20
  463. package/src/_modules/messaging/_models/msg-thread-info.interface.ts +35 -35
  464. package/src/_modules/messaging/_modules/agent/_enums/agt-process-step-type.enum.ts +35 -35
  465. package/src/_modules/messaging/_modules/agent/_enums/agt-tool-status.enum.ts +23 -23
  466. package/src/_modules/messaging/_modules/agent/_models/agt-process-step.interface.ts +55 -55
  467. package/src/_modules/messaging/_modules/agent/_models/agt-reasoning-info.interface.ts +26 -26
  468. package/src/_modules/messaging/_modules/agent/_models/agt-tool-usage.interface.ts +37 -37
  469. package/src/_modules/messaging/_modules/agent/index.ts +8 -8
  470. package/src/_modules/messaging/index.ts +28 -28
  471. package/src/_modules/pipe/_collections/pip-transforms.const.ts +42 -42
  472. package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.spec.ts +47 -47
  473. package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.ts +41 -41
  474. package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.spec.ts +39 -39
  475. package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.ts +30 -30
  476. package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.spec.ts +41 -41
  477. package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.ts +36 -36
  478. package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.spec.ts +62 -62
  479. package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.ts +17 -17
  480. package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.spec.ts +34 -34
  481. package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.ts +25 -25
  482. package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.spec.ts +67 -67
  483. package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.ts +226 -226
  484. package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.spec.ts +28 -28
  485. package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.ts +21 -21
  486. package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.spec.ts +59 -59
  487. package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.ts +106 -106
  488. package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.spec.ts +31 -31
  489. package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.ts +35 -35
  490. package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.spec.ts +44 -44
  491. package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.ts +23 -23
  492. package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.spec.ts +21 -21
  493. package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.ts +33 -33
  494. package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.spec.ts +62 -62
  495. package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.ts +80 -80
  496. package/src/_modules/pipe/_enums/pip-range-pipe-setting.enum.ts +15 -15
  497. package/src/_modules/pipe/_enums/pip.enum.ts +65 -65
  498. package/src/_modules/pipe/_models/pip-multi-pipe-settings.type.ts +8 -8
  499. package/src/_modules/pipe/_models/pip-transforms.interface.ts +30 -30
  500. package/src/_modules/pipe/index.ts +30 -30
  501. package/src/_modules/socket/_enums/sck-event-key.enum.ts +21 -21
  502. package/src/_modules/socket/_models/sck-client-params.control-model.spec.ts +67 -67
  503. package/src/_modules/socket/_models/sck-client-params.control-model.ts +50 -50
  504. package/src/_modules/socket/_models/sck-socket-event.control-model.spec.ts +66 -66
  505. package/src/_modules/socket/_models/sck-socket-event.control-model.ts +172 -172
  506. package/src/_modules/socket/_services/sck-client.service-base.spec.ts +99 -99
  507. package/src/_modules/socket/_services/sck-client.service-base.ts +353 -353
  508. package/src/_modules/socket/index.ts +14 -14
  509. package/src/_modules/test/_collections/tst-module-settings.const.ts +67 -67
  510. package/src/_modules/test/index.ts +5 -5
  511. package/src/_modules/usage/_collections/usg-module-settings.const.ts +33 -33
  512. package/src/_modules/usage/_models/usg-action.control-model.spec.ts +27 -27
  513. package/src/_modules/usage/_models/usg-action.control-model.ts +28 -28
  514. package/src/_modules/usage/_models/usg-daily-usage-data.control-model.spec.ts +36 -36
  515. package/src/_modules/usage/_models/usg-daily-usage-data.control-model.ts +35 -35
  516. package/src/_modules/usage/_models/usg-data.control-model.spec.ts +41 -41
  517. package/src/_modules/usage/_models/usg-data.control-model.ts +35 -35
  518. package/src/_modules/usage/_models/usg-session.data-model.spec.ts +97 -97
  519. package/src/_modules/usage/_models/usg-session.data-model.ts +72 -72
  520. package/src/_modules/usage/index.ts +11 -11
  521. package/src/index.ts +102 -102
  522. package/tsconfig.app.json +12 -12
  523. package/tsconfig.json +31 -31
  524. package/tsconfig.test.json +16 -16
  525. package/tslint.json +153 -153
  526. package/pipeline.cicd.config.json +0 -128
@@ -1,353 +1,353 @@
1
-
2
- import * as SocketIOClient from 'socket.io-client';
3
- import { BehaviorSubject } from 'rxjs';
4
-
5
- import {
6
- DyFM_global_settings
7
- } from '../../../_collections/constants/global-settings.const';
8
- import { DyFM_Array } from '../../../_collections/utils/array.util';
9
- import { DyFM_Log } from '../../../_collections/utils/log.util';
10
- import { DyFM_Async } from '../../../_collections/utils/async.util';
11
- import { DyFM_Error } from '../../../_models/control-models/error.control-model';
12
-
13
- import { DyFM_SocketEvent_Key } from '../_enums/sck-event-key.enum';
14
- import { DyFM_SocketClient_Params } from '../_models/sck-client-params.control-model';
15
- import { DyFM_SocketEvent } from '../_models/sck-socket-event.control-model';
16
-
17
- /**
18
- * Base implementation for socket.io clients used by Dynamo.
19
- * Handles connection logic, subscriptions and default events.
20
- */
21
- export abstract class DyFM_SocketClient_ServiceBase<T_SubscriptionContent = any> {
22
-
23
- private _params: DyFM_SocketClient_Params;
24
- protected get params(): DyFM_SocketClient_Params {
25
- return this._params;
26
- }
27
- get name(): string {
28
- return this.params.name;
29
- }
30
-
31
- protected socket: SocketIOClient.Socket;
32
-
33
- protected incomingEvents: DyFM_SocketEvent<any>[];
34
-
35
- protected _connected_BS: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
36
- get connected(): boolean {
37
- return this._connected_BS.value;
38
- }
39
- readonly connected$ = this._connected_BS.asObservable();
40
-
41
- private readonly _subscribed_BS: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
42
- get subscribed(): boolean {
43
- return this._subscribed_BS.value;
44
- }
45
- readonly subscribed$ = this._subscribed_BS.asObservable();
46
-
47
- protected debugLog: boolean = DyFM_global_settings.log_settings.setup;
48
- protected logFn: boolean = DyFM_global_settings.log_settings.functions;
49
-
50
- private readonly defaultEvents: DyFM_SocketEvent<any>[] = [
51
- new DyFM_SocketEvent<any>({
52
- eventKey: DyFM_SocketEvent_Key.outgoingNewConnection,
53
- tasks: [
54
- async (): Promise<void> => {
55
- this._connected_BS.next(true);
56
-
57
- if (this.subscribed) {
58
- this._subscribed_BS.next(false);
59
- }
60
- DyFM_Log.success(`< > socket-client(${this.params.name}) connected!`);
61
- },
62
- ],
63
- }),
64
-
65
- new DyFM_SocketEvent<any>({
66
- eventKey: DyFM_SocketEvent_Key.disconnect,
67
- tasks: [
68
- async (): Promise<void> => {
69
- this._connected_BS.next(false);
70
-
71
- if (this.subscribed) {
72
- this._subscribed_BS.next(false);
73
- }
74
- DyFM_Log.warn(`<x > socket-client(${this.params.name}) disconnected!`);
75
-
76
- if (this._params.reconnect) {
77
- await DyFM_Async.delay(this._params.reconnectDelay);
78
- this.connectSocket();
79
- }
80
- },
81
- ],
82
- }),
83
-
84
- new DyFM_SocketEvent<any>({
85
- eventKey: DyFM_SocketEvent_Key.subscriptionSuccessful,
86
- tasks: [
87
- async (): Promise<void> => {
88
- DyFM_Log.success(`<=--> socket-client(${this.params.name}) subscription successful!`);
89
- this._subscribed_BS.next(true);
90
- },
91
- ],
92
- }),
93
-
94
- new DyFM_SocketEvent<any>({
95
- eventKey: DyFM_SocketEvent_Key.unsubscribeSuccessful,
96
- tasks: [
97
- async (): Promise<void> => {
98
- DyFM_Log.success(`<x--> socket-client(${this.params.name}) unsubscribe successful!`);
99
- this._subscribed_BS.next(false);
100
- },
101
- ],
102
- }),
103
-
104
- new DyFM_SocketEvent<any>({
105
- eventKey: DyFM_SocketEvent_Key.error,
106
- tasks: [
107
- async (content: any): Promise<void> => {
108
- DyFM_Error.logSimple(`=--> socket-client(${this.params.name}) ERROR`, content);
109
- },
110
- ],
111
- }),
112
- ];
113
-
114
- protected constructor() {
115
- this.asyncConstructor().catch((error: any): void => {
116
- DyFM_Error.logSimple(
117
- `socket-client "${this.params?.name}" Service setup failed! ` +
118
- `(DyFM_SocketClientService constructor catch)` +
119
- `\n ERROR:`, error
120
- );
121
- });
122
- }
123
-
124
- subscriptionInProgress: boolean = false;
125
- async subscribe(): Promise<void> {
126
- try {
127
- if (this.subscribed) {
128
- DyFM_Log.warn(`socket-client(${this.params.name}) already subscribed!`);
129
-
130
- return;
131
- }
132
-
133
- if (this.subscriptionInProgress) {
134
- DyFM_Log.warn(`socket-client(${this.params.name}) subscription in progress!`);
135
-
136
- return;
137
- }
138
-
139
- this.subscriptionInProgress = true;
140
-
141
- const subscriptionContent: T_SubscriptionContent = await this.getSubscriptionContent();
142
-
143
- await this.emitEvent(DyFM_SocketEvent_Key.subscribe, subscriptionContent);
144
-
145
- this.subscriptionInProgress = false;
146
- } catch (error) {
147
- DyFM_Log.error(`socket-client(${this.params.name}) Service Subscribe failed!`, error);
148
-
149
- this.subscriptionInProgress = false;
150
-
151
- throw error;
152
- }
153
- }
154
-
155
- async unsubscribe(): Promise<void> {
156
- try {
157
- await this.emitEvent(DyFM_SocketEvent_Key.unsubscribe, null);
158
- } catch (error) {
159
- DyFM_Log.error(`socket-client(${this.params.name}) Service Unsubscribe failed!`, error);
160
-
161
- throw error;
162
- }
163
- }
164
-
165
- /**
166
- * Emit event to the socket
167
- * @param eventType event name
168
- * @param content event content
169
- */
170
- protected async emitEvent(eventType: string, content: any): Promise<void> {
171
- try {
172
- DyFM_Log.log(`<=-- outgoing socket-client(${this.params.name}) event: ${eventType}`);
173
- this.socket.emit(eventType, content);
174
- } catch (error) {
175
- DyFM_Log.error(
176
- `socket-client(${this.params.name}) ` +
177
- `Service Emit Event failed: ${this.params?.name} (${this.params?.port})`, error
178
- );
179
-
180
- throw error;
181
- }
182
- }
183
-
184
- private async asyncConstructor(): Promise<void> {
185
- try {
186
- this._params = this.getParams();
187
- this.incomingEvents = this.getIncomingEvents() ?? [];
188
- const socketAddress = this.params.port ? `${this.params.address}:${this.params.port}` : this.params.address;
189
- this.socket = SocketIOClient.io(
190
- socketAddress,
191
- {
192
- /* reconnection: this.params.reconnect,
193
- reconnectionDelay: this.params.reconnectDelay, */
194
- ...this.params.socketOptions,
195
- }
196
- );
197
-
198
- await this.setupDefaultEvents();
199
-
200
- await this.setupSocketEvents();
201
-
202
- DyFM_Log.success(`\nsocket-client(${this.params?.name}) Service setup finished`);
203
-
204
- await this.connectSocket();
205
- } catch (error) {
206
- DyFM_Log.error(`socket-client(${this.params?.name}) Service setup failed!`, error);
207
-
208
- throw new DyFM_Error({
209
- errorCode: 'FM-SCS-001',
210
- error: error,
211
- });
212
- }
213
- }
214
-
215
- private async setupDefaultEvents(): Promise<void> {
216
- try {
217
- if (this.logFn) console.log('\nFn:. setupDefaultEvents');
218
-
219
- this.defaultEvents.forEach((defaultEvent: DyFM_SocketEvent<any>): void => {
220
- defaultEvent.serviceName = this.params.name;
221
- const eventDeclared = this.incomingEvents.find(
222
- (event: DyFM_SocketEvent<any>): boolean => event.eventKey === defaultEvent.eventKey
223
- );
224
-
225
- if (!eventDeclared) {
226
- this.incomingEvents.push(defaultEvent);
227
- } else {
228
- eventDeclared.tasks.unshift(...defaultEvent.tasks);
229
- }
230
- });
231
- } catch (error) {
232
- DyFM_Log.error(
233
- `socket-client(${this.params.name}) Service Setup Default Events failed, ` +
234
- `ERROR:`, error
235
- );
236
-
237
- throw error;
238
- }
239
- }
240
-
241
- private async setupSocketEvents(): Promise<void> {
242
- try {
243
- if (this.debugLog) console.log(`Setup socket-client(${this.params.name}) Events...`);
244
-
245
- await DyFM_Array.asyncForEach(
246
- this.incomingEvents,
247
- async (event: DyFM_SocketEvent<any>): Promise<void> => {
248
- event.serviceName = this.params.name;
249
- this.socket.on(event.eventKey, async (content: any): Promise<void> => {
250
- try {
251
- await event.executeEventTasks(content, this.params.service);
252
- } catch (error) {
253
- DyFM_Log.error(`socket-client(${this.params.name}) Event failed, ERROR:`, error);
254
- await this.emitEvent(DyFM_SocketEvent_Key.error, error);
255
- }
256
- });
257
- }
258
- );
259
- } catch (error) {
260
- DyFM_Log.error(
261
- `socket-client(${this.params.name}) Service Setup Socket Events failed, ` +
262
- `ERROR:`, error
263
- );
264
-
265
- throw error;
266
- }
267
- }
268
-
269
- protected async connectSocket(): Promise<void> {
270
- try {
271
- DyFM_Log.info(
272
- `< .. > socket-client(${this.params.name}) ` +
273
- `connecting to ${this.params.address}:${this.params.port} ...`
274
- );
275
-
276
- this.socket.connect();
277
-
278
- if (this.params.reconnect) {
279
- await this.tryReconnectIfNeeded();
280
- }
281
- } catch (error) {
282
- DyFM_Log.error(
283
- `socket-client(${this.params.name}) Service Connect Socket failed, ` +
284
- `ERROR:`, error
285
- );
286
-
287
- throw error;
288
- }
289
- }
290
-
291
- private tryingToReconnect: boolean = false;
292
- private async tryReconnectIfNeeded(): Promise<void> {
293
- try {
294
- console.log('tryReconnectIfNeeded', this._params.reconnectDelay);
295
- if (this.tryingToReconnect) {
296
- DyFM_Log.warn(`socket-client(${this.params.name}) already trying to reconnect!`);
297
- return;
298
- }
299
-
300
- if (!this.params.reconnect) {
301
- DyFM_Log.warn(`socket-client(${this.params.name}) Dynamo reconnection is disabled!`);
302
- return;
303
- }
304
-
305
- this.tryingToReconnect = true;
306
-
307
- if (this.logFn) console.log(`\nFn:. tryReconnectIfNeeded`);
308
- await DyFM_Async.delay(this._params.reconnectDelay);
309
-
310
- if (!this.connected) {
311
- this.tryingToReconnect = false;
312
- await this.connectSocket();
313
- }
314
- } catch (error) {
315
- DyFM_Log.error(
316
- `socket-client(${this.params.name}) Service Try Reconnect failed, ` +
317
- `ERROR:`, error
318
- );
319
- this.tryingToReconnect = false;
320
-
321
- throw error;
322
- }
323
- }
324
-
325
- /**
326
- * Manuális újracsatlakozás: disconnect majd connectSocket.
327
- * A tryingToReconnect flag törlődik, hogy az azonnali connectSocket ne ütközzön az automata retry-vel.
328
- */
329
- reconnect(): void {
330
- this.tryingToReconnect = false;
331
- if (this.socket) {
332
- this.socket.disconnect();
333
- }
334
- this.connectSocket();
335
- }
336
-
337
- /**
338
- * You must setup params for the service in this function
339
- */
340
- abstract getParams(): DyFM_SocketClient_Params;
341
-
342
- /**
343
- * You must setup events and required services in this function
344
- */
345
- abstract getIncomingEvents(): DyFM_SocketEvent<any>[];
346
-
347
- /**
348
- * You must setup subscription content for the service in this function
349
- */
350
- abstract getSubscriptionContent(): Promise<T_SubscriptionContent>;
351
- }
352
-
353
-
1
+
2
+ import * as SocketIOClient from 'socket.io-client';
3
+ import { BehaviorSubject } from 'rxjs';
4
+
5
+ import {
6
+ DyFM_global_settings
7
+ } from '../../../_collections/constants/global-settings.const';
8
+ import { DyFM_Array } from '../../../_collections/utils/array.util';
9
+ import { DyFM_Log } from '../../../_collections/utils/log.util';
10
+ import { DyFM_Async } from '../../../_collections/utils/async.util';
11
+ import { DyFM_Error } from '../../../_models/control-models/error.control-model';
12
+
13
+ import { DyFM_SocketEvent_Key } from '../_enums/sck-event-key.enum';
14
+ import { DyFM_SocketClient_Params } from '../_models/sck-client-params.control-model';
15
+ import { DyFM_SocketEvent } from '../_models/sck-socket-event.control-model';
16
+
17
+ /**
18
+ * Base implementation for socket.io clients used by Dynamo.
19
+ * Handles connection logic, subscriptions and default events.
20
+ */
21
+ export abstract class DyFM_SocketClient_ServiceBase<T_SubscriptionContent = any> {
22
+
23
+ private _params: DyFM_SocketClient_Params;
24
+ protected get params(): DyFM_SocketClient_Params {
25
+ return this._params;
26
+ }
27
+ get name(): string {
28
+ return this.params.name;
29
+ }
30
+
31
+ protected socket: SocketIOClient.Socket;
32
+
33
+ protected incomingEvents: DyFM_SocketEvent<any>[];
34
+
35
+ protected _connected_BS: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
36
+ get connected(): boolean {
37
+ return this._connected_BS.value;
38
+ }
39
+ readonly connected$ = this._connected_BS.asObservable();
40
+
41
+ private readonly _subscribed_BS: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
42
+ get subscribed(): boolean {
43
+ return this._subscribed_BS.value;
44
+ }
45
+ readonly subscribed$ = this._subscribed_BS.asObservable();
46
+
47
+ protected debugLog: boolean = DyFM_global_settings.log_settings.setup;
48
+ protected logFn: boolean = DyFM_global_settings.log_settings.functions;
49
+
50
+ private readonly defaultEvents: DyFM_SocketEvent<any>[] = [
51
+ new DyFM_SocketEvent<any>({
52
+ eventKey: DyFM_SocketEvent_Key.outgoingNewConnection,
53
+ tasks: [
54
+ async (): Promise<void> => {
55
+ this._connected_BS.next(true);
56
+
57
+ if (this.subscribed) {
58
+ this._subscribed_BS.next(false);
59
+ }
60
+ DyFM_Log.success(`< > socket-client(${this.params.name}) connected!`);
61
+ },
62
+ ],
63
+ }),
64
+
65
+ new DyFM_SocketEvent<any>({
66
+ eventKey: DyFM_SocketEvent_Key.disconnect,
67
+ tasks: [
68
+ async (): Promise<void> => {
69
+ this._connected_BS.next(false);
70
+
71
+ if (this.subscribed) {
72
+ this._subscribed_BS.next(false);
73
+ }
74
+ DyFM_Log.warn(`<x > socket-client(${this.params.name}) disconnected!`);
75
+
76
+ if (this._params.reconnect) {
77
+ await DyFM_Async.delay(this._params.reconnectDelay);
78
+ this.connectSocket();
79
+ }
80
+ },
81
+ ],
82
+ }),
83
+
84
+ new DyFM_SocketEvent<any>({
85
+ eventKey: DyFM_SocketEvent_Key.subscriptionSuccessful,
86
+ tasks: [
87
+ async (): Promise<void> => {
88
+ DyFM_Log.success(`<=--> socket-client(${this.params.name}) subscription successful!`);
89
+ this._subscribed_BS.next(true);
90
+ },
91
+ ],
92
+ }),
93
+
94
+ new DyFM_SocketEvent<any>({
95
+ eventKey: DyFM_SocketEvent_Key.unsubscribeSuccessful,
96
+ tasks: [
97
+ async (): Promise<void> => {
98
+ DyFM_Log.success(`<x--> socket-client(${this.params.name}) unsubscribe successful!`);
99
+ this._subscribed_BS.next(false);
100
+ },
101
+ ],
102
+ }),
103
+
104
+ new DyFM_SocketEvent<any>({
105
+ eventKey: DyFM_SocketEvent_Key.error,
106
+ tasks: [
107
+ async (content: any): Promise<void> => {
108
+ DyFM_Error.logSimple(`=--> socket-client(${this.params.name}) ERROR`, content);
109
+ },
110
+ ],
111
+ }),
112
+ ];
113
+
114
+ protected constructor() {
115
+ this.asyncConstructor().catch((error: any): void => {
116
+ DyFM_Error.logSimple(
117
+ `socket-client "${this.params?.name}" Service setup failed! ` +
118
+ `(DyFM_SocketClientService constructor catch)` +
119
+ `\n ERROR:`, error
120
+ );
121
+ });
122
+ }
123
+
124
+ subscriptionInProgress: boolean = false;
125
+ async subscribe(): Promise<void> {
126
+ try {
127
+ if (this.subscribed) {
128
+ DyFM_Log.warn(`socket-client(${this.params.name}) already subscribed!`);
129
+
130
+ return;
131
+ }
132
+
133
+ if (this.subscriptionInProgress) {
134
+ DyFM_Log.warn(`socket-client(${this.params.name}) subscription in progress!`);
135
+
136
+ return;
137
+ }
138
+
139
+ this.subscriptionInProgress = true;
140
+
141
+ const subscriptionContent: T_SubscriptionContent = await this.getSubscriptionContent();
142
+
143
+ await this.emitEvent(DyFM_SocketEvent_Key.subscribe, subscriptionContent);
144
+
145
+ this.subscriptionInProgress = false;
146
+ } catch (error) {
147
+ DyFM_Log.error(`socket-client(${this.params.name}) Service Subscribe failed!`, error);
148
+
149
+ this.subscriptionInProgress = false;
150
+
151
+ throw error;
152
+ }
153
+ }
154
+
155
+ async unsubscribe(): Promise<void> {
156
+ try {
157
+ await this.emitEvent(DyFM_SocketEvent_Key.unsubscribe, null);
158
+ } catch (error) {
159
+ DyFM_Log.error(`socket-client(${this.params.name}) Service Unsubscribe failed!`, error);
160
+
161
+ throw error;
162
+ }
163
+ }
164
+
165
+ /**
166
+ * Emit event to the socket
167
+ * @param eventType event name
168
+ * @param content event content
169
+ */
170
+ protected async emitEvent(eventType: string, content: any): Promise<void> {
171
+ try {
172
+ DyFM_Log.log(`<=-- outgoing socket-client(${this.params.name}) event: ${eventType}`);
173
+ this.socket.emit(eventType, content);
174
+ } catch (error) {
175
+ DyFM_Log.error(
176
+ `socket-client(${this.params.name}) ` +
177
+ `Service Emit Event failed: ${this.params?.name} (${this.params?.port})`, error
178
+ );
179
+
180
+ throw error;
181
+ }
182
+ }
183
+
184
+ private async asyncConstructor(): Promise<void> {
185
+ try {
186
+ this._params = this.getParams();
187
+ this.incomingEvents = this.getIncomingEvents() ?? [];
188
+ const socketAddress = this.params.port ? `${this.params.address}:${this.params.port}` : this.params.address;
189
+ this.socket = SocketIOClient.io(
190
+ socketAddress,
191
+ {
192
+ /* reconnection: this.params.reconnect,
193
+ reconnectionDelay: this.params.reconnectDelay, */
194
+ ...this.params.socketOptions,
195
+ }
196
+ );
197
+
198
+ await this.setupDefaultEvents();
199
+
200
+ await this.setupSocketEvents();
201
+
202
+ DyFM_Log.success(`\nsocket-client(${this.params?.name}) Service setup finished`);
203
+
204
+ await this.connectSocket();
205
+ } catch (error) {
206
+ DyFM_Log.error(`socket-client(${this.params?.name}) Service setup failed!`, error);
207
+
208
+ throw new DyFM_Error({
209
+ errorCode: 'FM-SCS-001',
210
+ error: error,
211
+ });
212
+ }
213
+ }
214
+
215
+ private async setupDefaultEvents(): Promise<void> {
216
+ try {
217
+ if (this.logFn) console.log('\nFn:. setupDefaultEvents');
218
+
219
+ this.defaultEvents.forEach((defaultEvent: DyFM_SocketEvent<any>): void => {
220
+ defaultEvent.serviceName = this.params.name;
221
+ const eventDeclared = this.incomingEvents.find(
222
+ (event: DyFM_SocketEvent<any>): boolean => event.eventKey === defaultEvent.eventKey
223
+ );
224
+
225
+ if (!eventDeclared) {
226
+ this.incomingEvents.push(defaultEvent);
227
+ } else {
228
+ eventDeclared.tasks.unshift(...defaultEvent.tasks);
229
+ }
230
+ });
231
+ } catch (error) {
232
+ DyFM_Log.error(
233
+ `socket-client(${this.params.name}) Service Setup Default Events failed, ` +
234
+ `ERROR:`, error
235
+ );
236
+
237
+ throw error;
238
+ }
239
+ }
240
+
241
+ private async setupSocketEvents(): Promise<void> {
242
+ try {
243
+ if (this.debugLog) console.log(`Setup socket-client(${this.params.name}) Events...`);
244
+
245
+ await DyFM_Array.asyncForEach(
246
+ this.incomingEvents,
247
+ async (event: DyFM_SocketEvent<any>): Promise<void> => {
248
+ event.serviceName = this.params.name;
249
+ this.socket.on(event.eventKey, async (content: any): Promise<void> => {
250
+ try {
251
+ await event.executeEventTasks(content, this.params.service);
252
+ } catch (error) {
253
+ DyFM_Log.error(`socket-client(${this.params.name}) Event failed, ERROR:`, error);
254
+ await this.emitEvent(DyFM_SocketEvent_Key.error, error);
255
+ }
256
+ });
257
+ }
258
+ );
259
+ } catch (error) {
260
+ DyFM_Log.error(
261
+ `socket-client(${this.params.name}) Service Setup Socket Events failed, ` +
262
+ `ERROR:`, error
263
+ );
264
+
265
+ throw error;
266
+ }
267
+ }
268
+
269
+ protected async connectSocket(): Promise<void> {
270
+ try {
271
+ DyFM_Log.info(
272
+ `< .. > socket-client(${this.params.name}) ` +
273
+ `connecting to ${this.params.address}:${this.params.port} ...`
274
+ );
275
+
276
+ this.socket.connect();
277
+
278
+ if (this.params.reconnect) {
279
+ await this.tryReconnectIfNeeded();
280
+ }
281
+ } catch (error) {
282
+ DyFM_Log.error(
283
+ `socket-client(${this.params.name}) Service Connect Socket failed, ` +
284
+ `ERROR:`, error
285
+ );
286
+
287
+ throw error;
288
+ }
289
+ }
290
+
291
+ private tryingToReconnect: boolean = false;
292
+ private async tryReconnectIfNeeded(): Promise<void> {
293
+ try {
294
+ console.log('tryReconnectIfNeeded', this._params.reconnectDelay);
295
+ if (this.tryingToReconnect) {
296
+ DyFM_Log.warn(`socket-client(${this.params.name}) already trying to reconnect!`);
297
+ return;
298
+ }
299
+
300
+ if (!this.params.reconnect) {
301
+ DyFM_Log.warn(`socket-client(${this.params.name}) Dynamo reconnection is disabled!`);
302
+ return;
303
+ }
304
+
305
+ this.tryingToReconnect = true;
306
+
307
+ if (this.logFn) console.log(`\nFn:. tryReconnectIfNeeded`);
308
+ await DyFM_Async.delay(this._params.reconnectDelay);
309
+
310
+ if (!this.connected) {
311
+ this.tryingToReconnect = false;
312
+ await this.connectSocket();
313
+ }
314
+ } catch (error) {
315
+ DyFM_Log.error(
316
+ `socket-client(${this.params.name}) Service Try Reconnect failed, ` +
317
+ `ERROR:`, error
318
+ );
319
+ this.tryingToReconnect = false;
320
+
321
+ throw error;
322
+ }
323
+ }
324
+
325
+ /**
326
+ * Manuális újracsatlakozás: disconnect majd connectSocket.
327
+ * A tryingToReconnect flag törlődik, hogy az azonnali connectSocket ne ütközzön az automata retry-vel.
328
+ */
329
+ reconnect(): void {
330
+ this.tryingToReconnect = false;
331
+ if (this.socket) {
332
+ this.socket.disconnect();
333
+ }
334
+ this.connectSocket();
335
+ }
336
+
337
+ /**
338
+ * You must setup params for the service in this function
339
+ */
340
+ abstract getParams(): DyFM_SocketClient_Params;
341
+
342
+ /**
343
+ * You must setup events and required services in this function
344
+ */
345
+ abstract getIncomingEvents(): DyFM_SocketEvent<any>[];
346
+
347
+ /**
348
+ * You must setup subscription content for the service in this function
349
+ */
350
+ abstract getSubscriptionContent(): Promise<T_SubscriptionContent>;
351
+ }
352
+
353
+