@futdevpro/fsm-dynamo 1.16.38 → 1.16.40

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 (707) hide show
  1. package/.c8rc.json +26 -26
  2. package/.cursor/rules/__assistant_guide.mdc +30 -30
  3. package/.cursor/rules/__main.mdc +64 -64
  4. package/.cursor/rules/_ag_backend-structure.mdc +85 -85
  5. package/.cursor/rules/_ag_backend.mdc +16 -16
  6. package/.cursor/rules/_ag_debug.mdc +7 -7
  7. package/.cursor/rules/_ag_documentation_writing_rules.mdc +372 -372
  8. package/.cursor/rules/_ag_file-refactoring.mdc +113 -113
  9. package/.cursor/rules/_ag_fixes_rules.mdc +5 -5
  10. package/.cursor/rules/_ag_frontend-structure.mdc +86 -86
  11. package/.cursor/rules/_ag_frontend.mdc +39 -39
  12. package/.cursor/rules/_ag_import-rules.mdc +44 -44
  13. package/.cursor/rules/_ag_naming.mdc +115 -115
  14. package/.cursor/rules/_ag_running_commands.mdc +4 -4
  15. package/.cursor/rules/_ag_server-controller.mdc +5 -5
  16. package/.cursor/rules/_ag_should-be.mdc +6 -6
  17. package/.cursor/rules/_ag_swearing.mdc +47 -47
  18. package/.cursor/rules/ai_development_guide.md +60 -60
  19. package/.cursor/rules/ai_directives.md +114 -114
  20. package/.cursor/rules/cursor-rules.md +160 -160
  21. package/.cursor/rules/default-command.mdc +464 -464
  22. package/.cursor/rules/error_code_pattern.md +39 -39
  23. package/.cursor/rules/saved rule mcp server use.md +15 -15
  24. package/.dynamo/pipeline.cicd.config.json +157 -157
  25. package/.dynamo/version-bump.config.json +5 -5
  26. package/.github/workflows/main.yml +439 -439
  27. package/.husky/pre-commit +2 -2
  28. package/.vscode/settings.json +11 -11
  29. package/LICENSE +21 -21
  30. package/README.md +701 -693
  31. package/__documentations/2026-05-17-oai-compatible-providers-howto.md +282 -282
  32. package/__documentations/2026-06-01-fr047-fc-foundation.md +48 -48
  33. package/__documentations/2026-06-01-fr047-fr048-code-review.md +153 -153
  34. package/__documentations/2026-06-01-fr047-p1-function-calling-vocabulary.md +75 -75
  35. package/__documentations/2026-06-05-secret-mask-url-cred-any-scheme.md +37 -37
  36. package/__documentations/2026-06-06-ngx-models-merge-completion.md +100 -100
  37. package/__documentations/2026-06-22-dyfm-error-extends-error.md +109 -109
  38. package/__documentations/plans/00-MASTER-ngx-models-fsm-merge.md +75 -75
  39. package/__documentations/plans/01-naming-convention-DyNM-to-DyFM.md +103 -103
  40. package/__documentations/plans/02-consumer-rollout.md +84 -84
  41. package/_specifications/BACKLOG.md +43 -43
  42. package/build/_modules/crypto/_models/artifact-signature.interface.d.ts +37 -0
  43. package/build/_modules/crypto/_models/artifact-signature.interface.d.ts.map +1 -0
  44. package/build/_modules/crypto/_models/artifact-signature.interface.js +3 -0
  45. package/build/_modules/crypto/_models/artifact-signature.interface.js.map +1 -0
  46. package/build/_modules/crypto/_services/artifact-signature.control-service.d.ts +24 -0
  47. package/build/_modules/crypto/_services/artifact-signature.control-service.d.ts.map +1 -0
  48. package/build/_modules/crypto/_services/artifact-signature.control-service.js +281 -0
  49. package/build/_modules/crypto/_services/artifact-signature.control-service.js.map +1 -0
  50. package/build/_modules/crypto/index.d.ts +2 -0
  51. package/build/_modules/crypto/index.d.ts.map +1 -1
  52. package/build/_modules/crypto/index.js +2 -0
  53. package/build/_modules/crypto/index.js.map +1 -1
  54. package/build/_modules/socket/_models/sck-socket-event.control-model.d.ts +4 -6
  55. package/build/_modules/socket/_models/sck-socket-event.control-model.d.ts.map +1 -1
  56. package/build/_modules/socket/_models/sck-socket-event.control-model.js +9 -7
  57. package/build/_modules/socket/_models/sck-socket-event.control-model.js.map +1 -1
  58. package/eslint.config.js +4 -4
  59. package/nodemon.json +22 -22
  60. package/package.json +306 -306
  61. package/pnpm-workspace.yaml +2 -2
  62. package/scripts/_capture-out/ai-error-capture.json +398 -398
  63. package/scripts/ai-error-capture.js +171 -171
  64. package/scripts/ai-model-registry-check.js +132 -132
  65. package/scripts/crypto/CRYPTO-STABILITY-SOLUTION.md +196 -196
  66. package/scripts/crypto/README.md +113 -113
  67. package/scripts/crypto/demo-crypto-stability.js +120 -120
  68. package/scripts/crypto/stress-test-crypto.js +379 -379
  69. package/scripts/run-coverage-tests.js +24 -24
  70. package/scripts/verify-build-completeness.js +62 -62
  71. package/spec/support/helpers/ts-node-helper.js +9 -9
  72. package/spec/support/jasmine.coverage.json +23 -23
  73. package/spec/support/jasmine.json +24 -24
  74. package/src/_collections/constants/data-sizes.const.ts +40 -40
  75. package/src/_collections/constants/error-defaults.const.ts +20 -20
  76. package/src/_collections/constants/global-settings.const.spec.ts +32 -32
  77. package/src/_collections/constants/global-settings.const.ts +29 -29
  78. package/src/_collections/constants/numbers.const.ts +40 -40
  79. package/src/_collections/constants/times.const.ts +45 -45
  80. package/src/_collections/utils/array.util.spec.ts +306 -306
  81. package/src/_collections/utils/array.util.ts +813 -813
  82. package/src/_collections/utils/async.util.spec.ts +398 -398
  83. package/src/_collections/utils/async.util.ts +208 -208
  84. package/src/_collections/utils/data.util.spec.ts +345 -345
  85. package/src/_collections/utils/data.util.ts +226 -226
  86. package/src/_collections/utils/extract-error-message.util.spec.ts +204 -204
  87. package/src/_collections/utils/extract-error-message.util.ts +223 -223
  88. package/src/_collections/utils/json-error-helper.util.spec.ts +521 -521
  89. package/src/_collections/utils/json-error-helper.util.ts +301 -301
  90. package/src/_collections/utils/log.util.spec.ts +975 -975
  91. package/src/_collections/utils/log.util.ts +667 -667
  92. package/src/_collections/utils/math/box-bounds.spec.ts +73 -73
  93. package/src/_collections/utils/math/box-bounds.util.ts +183 -183
  94. package/src/_collections/utils/math/math.util.spec.ts +94 -94
  95. package/src/_collections/utils/math/math.util.ts +141 -141
  96. package/src/_collections/utils/math/random.util.spec.ts +82 -82
  97. package/src/_collections/utils/math/random.util.ts +139 -139
  98. package/src/_collections/utils/math/trigonometry.util.spec.ts +57 -57
  99. package/src/_collections/utils/math/trigonometry.util.ts +102 -102
  100. package/src/_collections/utils/math/vector2.util.spec.ts +94 -94
  101. package/src/_collections/utils/math/vector2.util.ts +653 -653
  102. package/src/_collections/utils/object.util.spec.ts +646 -646
  103. package/src/_collections/utils/object.util.ts +739 -739
  104. package/src/_collections/utils/regex/password-regex.util.spec.ts +51 -51
  105. package/src/_collections/utils/regex/password-regex.util.ts +65 -65
  106. package/src/_collections/utils/regex/regex.util.spec.ts +42 -42
  107. package/src/_collections/utils/regex/regex.util.ts +6 -6
  108. package/src/_collections/utils/regex/username-regex.util.spec.ts +61 -61
  109. package/src/_collections/utils/regex/username-regex.util.ts +35 -35
  110. package/src/_collections/utils/require-env.util.spec.ts +231 -231
  111. package/src/_collections/utils/require-env.util.ts +138 -138
  112. package/src/_collections/utils/round-list.util.spec.ts +79 -79
  113. package/src/_collections/utils/round-list.util.ts +162 -162
  114. package/src/_collections/utils/secret-mask.util.spec.ts +66 -66
  115. package/src/_collections/utils/secret-mask.util.ts +262 -262
  116. package/src/_collections/utils/stack.util.spec.ts +372 -372
  117. package/src/_collections/utils/stack.util.ts +164 -164
  118. package/src/_collections/utils/string-case.util.spec.ts +441 -441
  119. package/src/_collections/utils/string-case.util.ts +362 -362
  120. package/src/_collections/utils/string.util.spec.ts +975 -975
  121. package/src/_collections/utils/string.util.ts +449 -449
  122. package/src/_collections/utils/time.util.spec.ts +50 -50
  123. package/src/_collections/utils/time.util.ts +481 -481
  124. package/src/_collections/utils/type-cloning-facility.util.spec.ts +51 -51
  125. package/src/_collections/utils/type-cloning-facility.util.ts +168 -168
  126. package/src/_collections/utils/utilities.util.spec.ts +201 -201
  127. package/src/_collections/utils/utilities.util.ts +68 -68
  128. package/src/_collections/utils/uuid.util.spec.ts +30 -30
  129. package/src/_collections/utils/uuid.util.ts +50 -50
  130. package/src/_enums/basic-property-type.enum.ts +20 -20
  131. package/src/_enums/data-model-type.enum.ts +29 -29
  132. package/src/_enums/environment-flag.enum.ts +28 -28
  133. package/src/_enums/error-level.enum.ts +43 -43
  134. package/src/_enums/error-status.enum.ts +30 -30
  135. package/src/_enums/http/http-call-type.enum.ts +43 -43
  136. package/src/_enums/http/http-event-type.enum.ts +40 -40
  137. package/src/_enums/http/http-response-type.enum.ts +18 -18
  138. package/src/_enums/log-style.enum.ts +44 -44
  139. package/src/_enums/server-connection-status.enum.ts +6 -6
  140. package/src/_enums/time/day-of-week.enum.ts +55 -55
  141. package/src/_enums/time/month.enum.ts +25 -25
  142. package/src/_enums/time/relative-date.enum.ts +24 -24
  143. package/src/_models/control-models/data-model-params.control-model.spec.ts +156 -156
  144. package/src/_models/control-models/data-model-params.control-model.ts +362 -362
  145. package/src/_models/control-models/data-property-params.control-model.spec.ts +93 -93
  146. package/src/_models/control-models/data-property-params.control-model.ts +210 -210
  147. package/src/_models/control-models/error.control-model.spec.ts +975 -975
  148. package/src/_models/control-models/error.control-model.ts +1280 -1280
  149. package/src/_models/control-models/http/http-error-response.control-model.spec.ts +116 -116
  150. package/src/_models/control-models/http/http-error-response.control-model.ts +52 -52
  151. package/src/_models/control-models/http/http-headers.control-model.spec.ts +25 -25
  152. package/src/_models/control-models/http/http-headers.control-model.ts +124 -124
  153. package/src/_models/control-models/http/http-response.model-base.spec.ts +46 -46
  154. package/src/_models/control-models/http/http-response.model-base.ts +57 -57
  155. package/src/_models/control-models/poll.control-model.spec.ts +63 -63
  156. package/src/_models/control-models/poll.control-model.ts +151 -151
  157. package/src/_models/control-models/range-value.control-model.spec.ts +187 -187
  158. package/src/_models/control-models/range-value.control-model.ts +289 -289
  159. package/src/_models/control-models/server-status.control-model.spec.ts +66 -66
  160. package/src/_models/control-models/server-status.control-model.ts +94 -94
  161. package/src/_models/control-models/service-endpoint-settings-base.control-model.spec.ts +145 -145
  162. package/src/_models/control-models/service-endpoint-settings-base.control-model.ts +186 -186
  163. package/src/_models/data-models/errors.data-model.spec.ts +71 -71
  164. package/src/_models/data-models/errors.data-model.ts +200 -200
  165. package/src/_models/data-models/metadata.data-model.spec.ts +184 -184
  166. package/src/_models/data-models/metadata.data-model.ts +153 -153
  167. package/src/_models/interfaces/box-bounds.interface.ts +7 -7
  168. package/src/_models/interfaces/environment/global-log-settings.interface.ts +86 -86
  169. package/src/_models/interfaces/environment/global-settings.interface.ts +69 -69
  170. package/src/_models/interfaces/error-defaults.interface.ts +18 -18
  171. package/src/_models/interfaces/paged.interface.ts +12 -12
  172. package/src/_models/interfaces/random-weight.interface.ts +7 -7
  173. package/src/_models/interfaces/route-settings.interface.ts +15 -15
  174. package/src/_models/interfaces/search-query.interface.ts +23 -23
  175. package/src/_models/interfaces/search-result.interface.ts +5 -5
  176. package/src/_models/interfaces/server-error-statistics.interface.ts +24 -24
  177. package/src/_models/interfaces/vector2.interface.ts +20 -20
  178. package/src/_models/types/db-filter.type.ts +110 -110
  179. package/src/_models/types/db-sort.type.ts +4 -4
  180. package/src/_models/types/ds-filter.type.ts +68 -68
  181. package/src/_models/types/ds-sort.type.ts +21 -21
  182. package/src/_modules/ai/_collections/ai-model-ref.util.ts +88 -88
  183. package/src/_modules/ai/_collections/ai-model-registry.util.spec.ts +37 -37
  184. package/src/_modules/ai/_collections/ai-model-registry.util.ts +30 -30
  185. package/src/_modules/ai/_enums/ai-message-role.enum.ts +7 -7
  186. package/src/_modules/ai/_enums/ai-model-type.enum.ts +7 -7
  187. package/src/_modules/ai/_enums/ai-provider.enum.ts +7 -7
  188. package/src/_modules/ai/_models/ai-call-settings.interface.ts +84 -84
  189. package/src/_modules/ai/_models/ai-config.interface.ts +14 -14
  190. package/src/_modules/ai/_models/ai-embedding-request.interface.ts +20 -20
  191. package/src/_modules/ai/_models/ai-embedding-response.interface.ts +26 -26
  192. package/src/_modules/ai/_models/ai-llm-request.interface.ts +24 -24
  193. package/src/_modules/ai/_models/ai-llm-response.interface.ts +30 -30
  194. package/src/_modules/ai/_models/ai-message.interface.ts +12 -12
  195. package/src/_modules/ai/_models/ai-model-capabilities.interface.ts +35 -35
  196. package/src/_modules/ai/_models/ai-model-info.interface.ts +63 -63
  197. package/src/_modules/ai/_models/ai-model-settings-schema.interface.ts +52 -52
  198. package/src/_modules/ai/_models/ai-provider-capabilities.interface.ts +28 -28
  199. package/src/_modules/ai/_models/ai-settings.interface.ts +17 -17
  200. package/src/_modules/ai/_models/ai-tool-call.interface.ts +18 -18
  201. package/src/_modules/ai/_models/ai-tool-handler.type.ts +11 -11
  202. package/src/_modules/ai/_models/ai-tool-result.interface.ts +16 -16
  203. package/src/_modules/ai/_models/ai-tool.interface.ts +16 -16
  204. package/src/_modules/ai/_models/ai-user-provider-config.control-model.ts +29 -29
  205. package/src/_modules/ai/_modules/anthropic/_collections/aai-models.const.ts +135 -135
  206. package/src/_modules/ai/_modules/anthropic/_enums/aai-model.enum.ts +19 -19
  207. package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.spec.ts +28 -28
  208. package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.ts +23 -23
  209. package/src/_modules/ai/_modules/anthropic/_models/aai-client-options.interface.ts +10 -10
  210. package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.spec.ts +22 -22
  211. package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.ts +27 -27
  212. package/src/_modules/ai/_modules/anthropic/_models/aai-user-provider-config.control-model.ts +20 -20
  213. package/src/_modules/ai/_modules/anthropic/index.ts +14 -14
  214. package/src/_modules/ai/_modules/document-ai/_models/dai-embedding-info.interface.ts +12 -12
  215. package/src/_modules/ai/_modules/document-ai/_models/dai-vector-search-params.interface.ts +22 -22
  216. package/src/_modules/ai/_modules/document-ai/index.ts +4 -4
  217. package/src/_modules/ai/_modules/fdp-ai/_collections/fdpai-models.const.ts +40 -40
  218. package/src/_modules/ai/_modules/fdp-ai/_enums/fdpai-model.enum.ts +6 -6
  219. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-call-settings.control-model.ts +19 -19
  220. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-client-options.interface.ts +11 -11
  221. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-settings.control-model.ts +24 -24
  222. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-user-provider-config.control-model.ts +20 -20
  223. package/src/_modules/ai/_modules/fdp-ai/index.ts +11 -11
  224. package/src/_modules/ai/_modules/google-ai/_collections/gai-models.const.ts +161 -161
  225. package/src/_modules/ai/_modules/google-ai/_enums/gai-model.enum.ts +16 -16
  226. package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.spec.ts +28 -28
  227. package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.ts +21 -21
  228. package/src/_modules/ai/_modules/google-ai/_models/gai-client-options.interface.ts +8 -8
  229. package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.spec.ts +22 -22
  230. package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.ts +25 -25
  231. package/src/_modules/ai/_modules/google-ai/_models/gai-user-provider-config.control-model.ts +20 -20
  232. package/src/_modules/ai/_modules/google-ai/index.ts +14 -14
  233. package/src/_modules/ai/_modules/local-ai/_collections/lai-models.const.ts +59 -59
  234. package/src/_modules/ai/_modules/local-ai/_enums/lai-model.enum.ts +6 -6
  235. package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.spec.ts +28 -28
  236. package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.ts +18 -18
  237. package/src/_modules/ai/_modules/local-ai/_models/lai-client-options.interface.ts +9 -9
  238. package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.spec.ts +22 -22
  239. package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.ts +23 -23
  240. package/src/_modules/ai/_modules/local-ai/index.ts +14 -14
  241. package/src/_modules/ai/_modules/open-ai/_collections/oai-embedding-model-dimensions.const.ts +7 -7
  242. package/src/_modules/ai/_modules/open-ai/_collections/oai-models.const.ts +404 -404
  243. package/src/_modules/ai/_modules/open-ai/_enums/oai-model.enum.ts +179 -179
  244. package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.spec.ts +28 -28
  245. package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.ts +21 -21
  246. package/src/_modules/ai/_modules/open-ai/_models/oai-client-options.interface.ts +81 -81
  247. package/src/_modules/ai/_modules/open-ai/_models/oai-embedding-info.interface.ts +13 -13
  248. package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.spec.ts +22 -22
  249. package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.ts +25 -25
  250. package/src/_modules/ai/_modules/open-ai/_models/oai-user-provider-config.control-model.ts +21 -21
  251. package/src/_modules/ai/_modules/open-ai/index.ts +28 -28
  252. package/src/_modules/ai/index.ts +27 -27
  253. package/src/_modules/ci-tools/_enums/cit-ci-result-code.enum.ts +11 -11
  254. package/src/_modules/ci-tools/_enums/cit-ci-step-result-code.enum.ts +9 -9
  255. package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.spec.ts +58 -58
  256. package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.ts +77 -77
  257. package/src/_modules/ci-tools/_models/cit-ci-step-result.interface.ts +12 -12
  258. package/src/_modules/ci-tools/index.ts +8 -8
  259. package/src/_modules/crypto/_collections/crypto-v1.util.ts +225 -225
  260. package/src/_modules/crypto/_collections/crypto-v2.util.ts +331 -331
  261. package/src/_modules/crypto/_collections/crypto-v4.util.ts +702 -702
  262. package/src/_modules/crypto/_collections/crypto.util.db-envelope.spec.ts +51 -51
  263. package/src/_modules/crypto/_collections/crypto.util.edge.spec.ts +605 -605
  264. package/src/_modules/crypto/_collections/crypto.util.extra.spec.ts +642 -642
  265. package/src/_modules/crypto/_collections/crypto.util.simple.spec.ts +512 -512
  266. package/src/_modules/crypto/_collections/crypto.util.ts +748 -748
  267. package/src/_modules/crypto/_models/artifact-signature.interface.ts +39 -0
  268. package/src/_modules/crypto/_services/artifact-signature.control-service.spec.ts +223 -0
  269. package/src/_modules/crypto/_services/artifact-signature.control-service.ts +395 -0
  270. package/src/_modules/crypto/index.ts +16 -14
  271. package/src/_modules/custom-data/_collections/cud-module-settings.const.ts +21 -21
  272. package/src/_modules/custom-data/_models/cud.data-model.spec.ts +38 -38
  273. package/src/_modules/custom-data/_models/cud.data-model.ts +39 -39
  274. package/src/_modules/custom-data/index.ts +10 -10
  275. package/src/_modules/data-handler/_models/data-handler-settings.control-model.spec.ts +110 -110
  276. package/src/_modules/data-handler/_models/data-handler-settings.control-model.ts +110 -110
  277. package/src/_modules/data-handler/_models/data-handler.control-model.spec.ts +473 -473
  278. package/src/_modules/data-handler/_models/data-handler.control-model.ts +486 -486
  279. package/src/_modules/data-handler/_models/data-list-handler.control-model.spec.ts +263 -263
  280. package/src/_modules/data-handler/_models/data-list-handler.control-model.ts +252 -252
  281. package/src/_modules/data-handler/_models/data-search-handler.control-model.spec.ts +417 -417
  282. package/src/_modules/data-handler/_models/data-search-handler.control-model.ts +390 -390
  283. package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.spec.ts +374 -374
  284. package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.ts +274 -274
  285. package/src/_modules/data-handler/index.ts +6 -6
  286. package/src/_modules/game/_collections/audio-mixer.util.spec.ts +198 -198
  287. package/src/_modules/game/_collections/audio-mixer.util.ts +143 -143
  288. package/src/_modules/game/_collections/audio-scale.util.spec.ts +140 -140
  289. package/src/_modules/game/_collections/audio-scale.util.ts +129 -129
  290. package/src/_modules/game/_enums/audio-channel.enum.ts +22 -22
  291. package/src/_modules/game/_models/audio-mixer-config.interface.ts +53 -53
  292. package/src/_modules/game/_models/audio-mixer-settings.interface.ts +38 -38
  293. package/src/_modules/game/_models/audio-mixer-state.interface.ts +36 -36
  294. package/src/_modules/game/_models/audio-mixer.control-model.spec.ts +376 -376
  295. package/src/_modules/game/_models/audio-mixer.control-model.ts +419 -419
  296. package/src/_modules/game/_models/audio-scale.interface.ts +21 -21
  297. package/src/_modules/game/_models/seeded-random-state.interface.ts +21 -21
  298. package/src/_modules/game/_models/seeded-random.control-model.spec.ts +290 -290
  299. package/src/_modules/game/_models/seeded-random.control-model.ts +311 -311
  300. package/src/_modules/game/index.ts +15 -15
  301. package/src/_modules/location/_collections/assets/country-codes-ISO-3166.json +3239 -3239
  302. package/src/_modules/location/_collections/assets/country-divisions-ISO-3166-all-list.json +19035 -19035
  303. package/src/_modules/location/_collections/assets/country-divisions-ISO-3166.json +4993 -4993
  304. package/src/_modules/location/_collections/assets/country-phone-codes.json +1203 -1203
  305. package/src/_modules/location/_collections/assets/country-subdivisions/afghanistan.json +137 -137
  306. package/src/_modules/location/_collections/assets/country-subdivisions/albania.json +49 -49
  307. package/src/_modules/location/_collections/assets/country-subdivisions/algeria.json +193 -193
  308. package/src/_modules/location/_collections/assets/country-subdivisions/andorra.json +29 -29
  309. package/src/_modules/location/_collections/assets/country-subdivisions/angola.json +73 -73
  310. package/src/_modules/location/_collections/assets/country-subdivisions/antigua-and-barbuda.json +33 -33
  311. package/src/_modules/location/_collections/assets/country-subdivisions/argentina.json +97 -97
  312. package/src/_modules/location/_collections/assets/country-subdivisions/armenia.json +45 -45
  313. package/src/_modules/location/_collections/assets/country-subdivisions/australia.json +33 -33
  314. package/src/_modules/location/_collections/assets/country-subdivisions/austria.json +37 -37
  315. package/src/_modules/location/_collections/assets/country-subdivisions/azerbaijan.json +5 -5
  316. package/src/_modules/location/_collections/assets/country-subdivisions/bahamas.json +125 -125
  317. package/src/_modules/location/_collections/assets/country-subdivisions/bahrain.json +21 -21
  318. package/src/_modules/location/_collections/assets/country-subdivisions/bangladesh.json +29 -29
  319. package/src/_modules/location/_collections/assets/country-subdivisions/barbados.json +45 -45
  320. package/src/_modules/location/_collections/assets/country-subdivisions/belarus.json +29 -29
  321. package/src/_modules/location/_collections/assets/country-subdivisions/belgium.json +13 -13
  322. package/src/_modules/location/_collections/assets/country-subdivisions/belize.json +25 -25
  323. package/src/_modules/location/_collections/assets/country-subdivisions/benin.json +49 -49
  324. package/src/_modules/location/_collections/assets/country-subdivisions/bhutan.json +81 -81
  325. package/src/_modules/location/_collections/assets/country-subdivisions/bolivia.json +37 -37
  326. package/src/_modules/location/_collections/assets/country-subdivisions/bosnia-and-herzegovina.json +13 -13
  327. package/src/_modules/location/_collections/assets/country-subdivisions/botswana.json +65 -65
  328. package/src/_modules/location/_collections/assets/country-subdivisions/brazil.json +109 -109
  329. package/src/_modules/location/_collections/assets/country-subdivisions/brunei-darussalam.json +17 -17
  330. package/src/_modules/location/_collections/assets/country-subdivisions/bulgaria.json +113 -113
  331. package/src/_modules/location/_collections/assets/country-subdivisions/burkina-faso.json +53 -53
  332. package/src/_modules/location/_collections/assets/country-subdivisions/burundi.json +69 -69
  333. package/src/_modules/location/_collections/assets/country-subdivisions/cambodia.json +97 -97
  334. package/src/_modules/location/_collections/assets/country-subdivisions/cameroon.json +41 -41
  335. package/src/_modules/location/_collections/assets/country-subdivisions/canada.json +79 -79
  336. package/src/_modules/location/_collections/assets/country-subdivisions/cape-verde.json +9 -9
  337. package/src/_modules/location/_collections/assets/country-subdivisions/central-african-republic.json +69 -69
  338. package/src/_modules/location/_collections/assets/country-subdivisions/chad.json +89 -89
  339. package/src/_modules/location/_collections/assets/country-subdivisions/chile.json +61 -61
  340. package/src/_modules/location/_collections/assets/country-subdivisions/china.json +205 -205
  341. package/src/_modules/location/_collections/assets/country-subdivisions/colombia.json +133 -133
  342. package/src/_modules/location/_collections/assets/country-subdivisions/comoros.json +13 -13
  343. package/src/_modules/location/_collections/assets/country-subdivisions/congo-the-democratic-republic-of-the.json +45 -45
  344. package/src/_modules/location/_collections/assets/country-subdivisions/congo.json +49 -49
  345. package/src/_modules/location/_collections/assets/country-subdivisions/costa-rica.json +29 -29
  346. package/src/_modules/location/_collections/assets/country-subdivisions/cote-d-ivoire-republic-of.json +77 -77
  347. package/src/_modules/location/_collections/assets/country-subdivisions/croatia.json +85 -85
  348. package/src/_modules/location/_collections/assets/country-subdivisions/cuba.json +65 -65
  349. package/src/_modules/location/_collections/assets/country-subdivisions/cyprus.json +25 -25
  350. package/src/_modules/location/_collections/assets/country-subdivisions/czech-republic.json +57 -57
  351. package/src/_modules/location/_collections/assets/country-subdivisions/denmark.json +21 -21
  352. package/src/_modules/location/_collections/assets/country-subdivisions/djibouti.json +25 -25
  353. package/src/_modules/location/_collections/assets/country-subdivisions/dominica.json +41 -41
  354. package/src/_modules/location/_collections/assets/country-subdivisions/dominican-republic.json +41 -41
  355. package/src/_modules/location/_collections/assets/country-subdivisions/ecuador.json +97 -97
  356. package/src/_modules/location/_collections/assets/country-subdivisions/egypt.json +117 -117
  357. package/src/_modules/location/_collections/assets/country-subdivisions/el-salvador.json +57 -57
  358. package/src/_modules/location/_collections/assets/country-subdivisions/equatorial-guinea.json +9 -9
  359. package/src/_modules/location/_collections/assets/country-subdivisions/eritrea.json +25 -25
  360. package/src/_modules/location/_collections/assets/country-subdivisions/estonia.json +61 -61
  361. package/src/_modules/location/_collections/assets/country-subdivisions/ethiopia.json +45 -45
  362. package/src/_modules/location/_collections/assets/country-subdivisions/fiji.json +21 -21
  363. package/src/_modules/location/_collections/assets/country-subdivisions/finland.json +77 -77
  364. package/src/_modules/location/_collections/assets/country-subdivisions/france.json +133 -133
  365. package/src/_modules/location/_collections/assets/country-subdivisions/gabon.json +37 -37
  366. package/src/_modules/location/_collections/assets/country-subdivisions/gambia.json +25 -25
  367. package/src/_modules/location/_collections/assets/country-subdivisions/georgia.json +49 -49
  368. package/src/_modules/location/_collections/assets/country-subdivisions/germany.json +65 -65
  369. package/src/_modules/location/_collections/assets/country-subdivisions/ghana.json +41 -41
  370. package/src/_modules/location/_collections/assets/country-subdivisions/greece.json +53 -53
  371. package/src/_modules/location/_collections/assets/country-subdivisions/greenland.json +17 -17
  372. package/src/_modules/location/_collections/assets/country-subdivisions/grenada.json +29 -29
  373. package/src/_modules/location/_collections/assets/country-subdivisions/guatemala.json +89 -89
  374. package/src/_modules/location/_collections/assets/country-subdivisions/guinea-bissau.json +13 -13
  375. package/src/_modules/location/_collections/assets/country-subdivisions/guinea.json +33 -33
  376. package/src/_modules/location/_collections/assets/country-subdivisions/guyana.json +41 -41
  377. package/src/_modules/location/_collections/assets/country-subdivisions/haiti.json +41 -41
  378. package/src/_modules/location/_collections/assets/country-subdivisions/honduras.json +73 -73
  379. package/src/_modules/location/_collections/assets/country-subdivisions/hong-kong.json +4 -4
  380. package/src/_modules/location/_collections/assets/country-subdivisions/hungary.json +173 -173
  381. package/src/_modules/location/_collections/assets/country-subdivisions/iceland.json +37 -37
  382. package/src/_modules/location/_collections/assets/country-subdivisions/india.json +181 -181
  383. package/src/_modules/location/_collections/assets/country-subdivisions/indonesia.json +29 -29
  384. package/src/_modules/location/_collections/assets/country-subdivisions/iran-islamic-republic-of.json +125 -125
  385. package/src/_modules/location/_collections/assets/country-subdivisions/iraq.json +73 -73
  386. package/src/_modules/location/_collections/assets/country-subdivisions/ireland.json +17 -17
  387. package/src/_modules/location/_collections/assets/country-subdivisions/israel.json +25 -25
  388. package/src/_modules/location/_collections/assets/country-subdivisions/italy.json +81 -81
  389. package/src/_modules/location/_collections/assets/country-subdivisions/jamaica.json +57 -57
  390. package/src/_modules/location/_collections/assets/country-subdivisions/japan.json +189 -189
  391. package/src/_modules/location/_collections/assets/country-subdivisions/jordan.json +49 -49
  392. package/src/_modules/location/_collections/assets/country-subdivisions/kazakhstan.json +65 -65
  393. package/src/_modules/location/_collections/assets/country-subdivisions/kenya.json +33 -33
  394. package/src/_modules/location/_collections/assets/country-subdivisions/kiribati.json +13 -13
  395. package/src/_modules/location/_collections/assets/country-subdivisions/korea-democratic-people-s-republic-of.json +45 -45
  396. package/src/_modules/location/_collections/assets/country-subdivisions/korea-republic-of.json +69 -69
  397. package/src/_modules/location/_collections/assets/country-subdivisions/kuwait.json +25 -25
  398. package/src/_modules/location/_collections/assets/country-subdivisions/kyrgyzstan.json +33 -33
  399. package/src/_modules/location/_collections/assets/country-subdivisions/lao-people-s-democratic-republic.json +73 -73
  400. package/src/_modules/location/_collections/assets/country-subdivisions/latvia.json +477 -477
  401. package/src/_modules/location/_collections/assets/country-subdivisions/lebanon.json +33 -33
  402. package/src/_modules/location/_collections/assets/country-subdivisions/lesotho.json +41 -41
  403. package/src/_modules/location/_collections/assets/country-subdivisions/liberia.json +61 -61
  404. package/src/_modules/location/_collections/assets/country-subdivisions/libyan-arab-jamahiriya.json +89 -89
  405. package/src/_modules/location/_collections/assets/country-subdivisions/liechtenstein.json +45 -45
  406. package/src/_modules/location/_collections/assets/country-subdivisions/lithuania.json +41 -41
  407. package/src/_modules/location/_collections/assets/country-subdivisions/luxembourg.json +13 -13
  408. package/src/_modules/location/_collections/assets/country-subdivisions/macedonia-the-former-yugoslav-republic-of.json +337 -337
  409. package/src/_modules/location/_collections/assets/country-subdivisions/madagascar.json +25 -25
  410. package/src/_modules/location/_collections/assets/country-subdivisions/malawi.json +13 -13
  411. package/src/_modules/location/_collections/assets/country-subdivisions/malaysia.json +81 -81
  412. package/src/_modules/location/_collections/assets/country-subdivisions/maldives.json +33 -33
  413. package/src/_modules/location/_collections/assets/country-subdivisions/mali.json +37 -37
  414. package/src/_modules/location/_collections/assets/country-subdivisions/malta.json +273 -273
  415. package/src/_modules/location/_collections/assets/country-subdivisions/marshall-islands.json +9 -9
  416. package/src/_modules/location/_collections/assets/country-subdivisions/mauritania.json +53 -53
  417. package/src/_modules/location/_collections/assets/country-subdivisions/mauritius.json +69 -69
  418. package/src/_modules/location/_collections/assets/country-subdivisions/mexico.json +161 -161
  419. package/src/_modules/location/_collections/assets/country-subdivisions/micronesia-federated-states-of.json +17 -17
  420. package/src/_modules/location/_collections/assets/country-subdivisions/moldova-republic-of.json +149 -149
  421. package/src/_modules/location/_collections/assets/country-subdivisions/monaco.json +69 -69
  422. package/src/_modules/location/_collections/assets/country-subdivisions/mongolia.json +89 -89
  423. package/src/_modules/location/_collections/assets/country-subdivisions/montenegro.json +93 -93
  424. package/src/_modules/location/_collections/assets/country-subdivisions/morocco.json +65 -65
  425. package/src/_modules/location/_collections/assets/country-subdivisions/mozambique.json +45 -45
  426. package/src/_modules/location/_collections/assets/country-subdivisions/myanmar.json +57 -57
  427. package/src/_modules/location/_collections/assets/country-subdivisions/namibia.json +57 -57
  428. package/src/_modules/location/_collections/assets/country-subdivisions/nauru.json +57 -57
  429. package/src/_modules/location/_collections/assets/country-subdivisions/nepal.json +21 -21
  430. package/src/_modules/location/_collections/assets/country-subdivisions/netherlands.json +91 -91
  431. package/src/_modules/location/_collections/assets/country-subdivisions/new-zealand.json +111 -111
  432. package/src/_modules/location/_collections/assets/country-subdivisions/nicaragua.json +69 -69
  433. package/src/_modules/location/_collections/assets/country-subdivisions/niger.json +33 -33
  434. package/src/_modules/location/_collections/assets/country-subdivisions/nigeria.json +149 -149
  435. package/src/_modules/location/_collections/assets/country-subdivisions/norway.json +85 -85
  436. package/src/_modules/location/_collections/assets/country-subdivisions/oman.json +37 -37
  437. package/src/_modules/location/_collections/assets/country-subdivisions/pakistan.json +33 -33
  438. package/src/_modules/location/_collections/assets/country-subdivisions/palau.json +65 -65
  439. package/src/_modules/location/_collections/assets/country-subdivisions/palestinian-territory-occupied.json +65 -65
  440. package/src/_modules/location/_collections/assets/country-subdivisions/panama.json +53 -53
  441. package/src/_modules/location/_collections/assets/country-subdivisions/papua-new-guinea.json +81 -81
  442. package/src/_modules/location/_collections/assets/country-subdivisions/paraguay.json +73 -73
  443. package/src/_modules/location/_collections/assets/country-subdivisions/peru.json +105 -105
  444. package/src/_modules/location/_collections/assets/country-subdivisions/philippines.json +69 -69
  445. package/src/_modules/location/_collections/assets/country-subdivisions/poland.json +65 -65
  446. package/src/_modules/location/_collections/assets/country-subdivisions/portugal.json +81 -81
  447. package/src/_modules/location/_collections/assets/country-subdivisions/qatar.json +29 -29
  448. package/src/_modules/location/_collections/assets/country-subdivisions/romania.json +169 -169
  449. package/src/_modules/location/_collections/assets/country-subdivisions/russian-federation.json +499 -499
  450. package/src/_modules/location/_collections/assets/country-subdivisions/rwanda.json +21 -21
  451. package/src/_modules/location/_collections/assets/country-subdivisions/saint-helena-ascension-and-tristan-da-cunha.json +13 -13
  452. package/src/_modules/location/_collections/assets/country-subdivisions/saint-kitts-and-nevis.json +9 -9
  453. package/src/_modules/location/_collections/assets/country-subdivisions/saint-lucia.json +45 -45
  454. package/src/_modules/location/_collections/assets/country-subdivisions/saint-vincent-and-the-grenadines.json +25 -25
  455. package/src/_modules/location/_collections/assets/country-subdivisions/samoa.json +45 -45
  456. package/src/_modules/location/_collections/assets/country-subdivisions/san-marino.json +37 -37
  457. package/src/_modules/location/_collections/assets/country-subdivisions/sao-tome-and-principe.json +9 -9
  458. package/src/_modules/location/_collections/assets/country-subdivisions/saudi-arabia.json +53 -53
  459. package/src/_modules/location/_collections/assets/country-subdivisions/senegal.json +57 -57
  460. package/src/_modules/location/_collections/assets/country-subdivisions/serbia.json +9 -9
  461. package/src/_modules/location/_collections/assets/country-subdivisions/seychelles.json +101 -101
  462. package/src/_modules/location/_collections/assets/country-subdivisions/sierra-leone.json +17 -17
  463. package/src/_modules/location/_collections/assets/country-subdivisions/singapore.json +21 -21
  464. package/src/_modules/location/_collections/assets/country-subdivisions/slovakia.json +33 -33
  465. package/src/_modules/location/_collections/assets/country-subdivisions/slovenia.json +841 -841
  466. package/src/_modules/location/_collections/assets/country-subdivisions/solomon-islands.json +41 -41
  467. package/src/_modules/location/_collections/assets/country-subdivisions/somalia.json +73 -73
  468. package/src/_modules/location/_collections/assets/country-subdivisions/south-africa.json +37 -37
  469. package/src/_modules/location/_collections/assets/country-subdivisions/south-sudan.json +41 -41
  470. package/src/_modules/location/_collections/assets/country-subdivisions/spain.json +346 -346
  471. package/src/_modules/location/_collections/assets/country-subdivisions/sri-lanka.json +37 -37
  472. package/src/_modules/location/_collections/assets/country-subdivisions/sudan.json +69 -69
  473. package/src/_modules/location/_collections/assets/country-subdivisions/suriname.json +41 -41
  474. package/src/_modules/location/_collections/assets/country-subdivisions/swaziland.json +17 -17
  475. package/src/_modules/location/_collections/assets/country-subdivisions/sweden.json +85 -85
  476. package/src/_modules/location/_collections/assets/country-subdivisions/switzerland.json +105 -105
  477. package/src/_modules/location/_collections/assets/country-subdivisions/syrian-arab-republic.json +57 -57
  478. package/src/_modules/location/_collections/assets/country-subdivisions/taiwan-province-of-china.json +93 -93
  479. package/src/_modules/location/_collections/assets/country-subdivisions/tajikistan.json +17 -17
  480. package/src/_modules/location/_collections/assets/country-subdivisions/tanzania-united-republic-of.json +105 -105
  481. package/src/_modules/location/_collections/assets/country-subdivisions/thailand.json +313 -313
  482. package/src/_modules/location/_collections/assets/country-subdivisions/timor-leste.json +53 -53
  483. package/src/_modules/location/_collections/assets/country-subdivisions/togo.json +21 -21
  484. package/src/_modules/location/_collections/assets/country-subdivisions/tonga.json +21 -21
  485. package/src/_modules/location/_collections/assets/country-subdivisions/trinidad-and-tobago.json +65 -65
  486. package/src/_modules/location/_collections/assets/country-subdivisions/tunisia.json +97 -97
  487. package/src/_modules/location/_collections/assets/country-subdivisions/turkey.json +325 -325
  488. package/src/_modules/location/_collections/assets/country-subdivisions/turkmenistan.json +25 -25
  489. package/src/_modules/location/_collections/assets/country-subdivisions/tuvalu.json +33 -33
  490. package/src/_modules/location/_collections/assets/country-subdivisions/uganda.json +17 -17
  491. package/src/_modules/location/_collections/assets/country-subdivisions/ukraine.json +109 -109
  492. package/src/_modules/location/_collections/assets/country-subdivisions/united-arab-emirates.json +29 -29
  493. package/src/_modules/location/_collections/assets/country-subdivisions/united-kingdom.json +1196 -1196
  494. package/src/_modules/location/_collections/assets/country-subdivisions/united-states-minor-outlying-islands.json +37 -37
  495. package/src/_modules/location/_collections/assets/country-subdivisions/united-states.json +286 -286
  496. package/src/_modules/location/_collections/assets/country-subdivisions/uruguay.json +77 -77
  497. package/src/_modules/location/_collections/assets/country-subdivisions/uzbekistan.json +57 -57
  498. package/src/_modules/location/_collections/assets/country-subdivisions/vanuatu.json +25 -25
  499. package/src/_modules/location/_collections/assets/country-subdivisions/venezuela.json +101 -101
  500. package/src/_modules/location/_collections/assets/country-subdivisions/viet-nam.json +257 -257
  501. package/src/_modules/location/_collections/assets/country-subdivisions/yemen.json +85 -85
  502. package/src/_modules/location/_collections/assets/country-subdivisions/zambia.json +37 -37
  503. package/src/_modules/location/_collections/assets/country-subdivisions/zimbabwe.json +41 -41
  504. package/src/_modules/location/_collections/loc-country-divisions.const.ts +10 -10
  505. package/src/_modules/location/_collections/loc-country-isos.const.ts +8 -8
  506. package/src/_modules/location/_collections/loc-regions.util.spec.ts +61 -61
  507. package/src/_modules/location/_collections/loc-regions.util.ts +137 -137
  508. package/src/_modules/location/_collections/loc.util.spec.ts +52 -52
  509. package/src/_modules/location/_collections/loc.util.ts +74 -74
  510. package/src/_modules/location/_enums/loc-region.enum.ts +14 -14
  511. package/src/_modules/location/_enums/loc-sub-region.enum.ts +31 -31
  512. package/src/_modules/location/_enums/loc-subdivision-region-type.enum.ts +47 -47
  513. package/src/_modules/location/_models/loc-coordinates.interface.ts +7 -7
  514. package/src/_modules/location/_models/loc-country-division.interface.ts +8 -8
  515. package/src/_modules/location/_models/loc-country-iso.interface.ts +23 -23
  516. package/src/_modules/location/_models/loc-country-phone-code.interface.ts +9 -9
  517. package/src/_modules/location/_models/loc-division-collection.interface.ts +12 -12
  518. package/src/_modules/location/_models/loc-division-region-data.interface.ts +9 -9
  519. package/src/_modules/location/_models/loc-geo-ip-location.interface.ts +27 -27
  520. package/src/_modules/location/index.ts +22 -22
  521. package/src/_modules/messaging/README.md +279 -279
  522. package/src/_modules/messaging/_collections/msg-module-settings.const.ts +46 -46
  523. package/src/_modules/messaging/_enums/msg-attachment-type.enum.ts +26 -26
  524. package/src/_modules/messaging/_enums/msg-conversation-type.enum.ts +20 -20
  525. package/src/_modules/messaging/_enums/msg-delivery-status.enum.ts +17 -17
  526. package/src/_modules/messaging/_enums/msg-event-key.enum.ts +31 -31
  527. package/src/_modules/messaging/_enums/msg-participant-role.enum.ts +20 -20
  528. package/src/_modules/messaging/_enums/msg-provider-type.enum.ts +7 -7
  529. package/src/_modules/messaging/_enums/msg-status.enum.ts +26 -26
  530. package/src/_modules/messaging/_enums/msg-type.enum.ts +23 -23
  531. package/src/_modules/messaging/_models/msg-attachment.interface.ts +46 -46
  532. package/src/_modules/messaging/_models/msg-conversation.data-model.spec.ts +69 -69
  533. package/src/_modules/messaging/_models/msg-conversation.data-model.ts +96 -96
  534. package/src/_modules/messaging/_models/msg-mention.interface.ts +29 -29
  535. package/src/_modules/messaging/_models/msg-message.data-model.spec.ts +79 -79
  536. package/src/_modules/messaging/_models/msg-message.data-model.ts +127 -127
  537. package/src/_modules/messaging/_models/msg-participant.interface.ts +46 -46
  538. package/src/_modules/messaging/_models/msg-reaction.interface.ts +20 -20
  539. package/src/_modules/messaging/_models/msg-thread-info.interface.ts +35 -35
  540. package/src/_modules/messaging/_modules/agent/_enums/agt-process-step-type.enum.ts +35 -35
  541. package/src/_modules/messaging/_modules/agent/_enums/agt-tool-status.enum.ts +23 -23
  542. package/src/_modules/messaging/_modules/agent/_models/agt-process-step.interface.ts +55 -55
  543. package/src/_modules/messaging/_modules/agent/_models/agt-reasoning-info.interface.ts +26 -26
  544. package/src/_modules/messaging/_modules/agent/_models/agt-tool-usage.interface.ts +37 -37
  545. package/src/_modules/messaging/_modules/agent/index.ts +8 -8
  546. package/src/_modules/messaging/index.ts +28 -28
  547. package/src/_modules/ngx-models/_collections/angular-placeholders.ts +34 -34
  548. package/src/_modules/ngx-models/_collections/button-new-style-settings-presets.const.ts +181 -181
  549. package/src/_modules/ngx-models/_collections/dynamo-global.settings.spec.ts +74 -74
  550. package/src/_modules/ngx-models/_collections/dynamo-global.settings.ts +103 -103
  551. package/src/_modules/ngx-models/_enums/button-new/button-new-border-radius.enum.ts +16 -16
  552. package/src/_modules/ngx-models/_enums/button-new/button-new-icon-style-type.enum.ts +14 -14
  553. package/src/_modules/ngx-models/_enums/button-new/button-new-size.enum.ts +16 -16
  554. package/src/_modules/ngx-models/_enums/button-new/button-new-style-type.enum.ts +18 -18
  555. package/src/_modules/ngx-models/_enums/button-type.enum.ts +36 -36
  556. package/src/_modules/ngx-models/_enums/checkbox-label-position.enum.ts +8 -8
  557. package/src/_modules/ngx-models/_enums/container-type.enum.ts +11 -11
  558. package/src/_modules/ngx-models/_enums/errors/error-level.enum.ts +13 -13
  559. package/src/_modules/ngx-models/_enums/errors/error-notification-color.enum.ts +13 -13
  560. package/src/_modules/ngx-models/_enums/errors/error-ui-mode.enum.ts +13 -13
  561. package/src/_modules/ngx-models/_enums/field-appearance.enum.ts +14 -14
  562. package/src/_modules/ngx-models/_enums/field-type.enum.ts +52 -52
  563. package/src/_modules/ngx-models/_enums/file-type.enum.ts +12 -12
  564. package/src/_modules/ngx-models/_enums/flex/flex-layout-align.enum.ts +21 -21
  565. package/src/_modules/ngx-models/_enums/flex/flex-layout.enum.ts +5 -5
  566. package/src/_modules/ngx-models/_enums/form-access.enum.ts +9 -9
  567. package/src/_modules/ngx-models/_enums/form-reset-data.enum.ts +12 -12
  568. package/src/_modules/ngx-models/_enums/form-store-on.enum.ts +9 -9
  569. package/src/_modules/ngx-models/_enums/forms-new/field-new-validator-type.enum.ts +20 -20
  570. package/src/_modules/ngx-models/_enums/frames/header-item-type.enum.ts +15 -15
  571. package/src/_modules/ngx-models/_enums/frames/header-position.enum.ts +10 -10
  572. package/src/_modules/ngx-models/_enums/frames/side-nav-badge-color.enum.ts +13 -13
  573. package/src/_modules/ngx-models/_enums/html/input-types.enum.ts +27 -27
  574. package/src/_modules/ngx-models/_enums/material-color.enum.ts +16 -16
  575. package/src/_modules/ngx-models/_enums/material-tooltip-position.enum.ts +16 -16
  576. package/src/_modules/ngx-models/_enums/preconfigured-field-type.enum.ts +8 -8
  577. package/src/_modules/ngx-models/_enums/storage-type.enum.ts +15 -15
  578. package/src/_modules/ngx-models/_enums/validator-type.enum.ts +9 -9
  579. package/src/_modules/ngx-models/_enums/voice/audio-mime-type.enum.ts +14 -14
  580. package/src/_modules/ngx-models/_enums/voice/voice-provider-type.enum.ts +26 -26
  581. package/src/_modules/ngx-models/_enums/voice/voice-recorder-state.enum.ts +20 -20
  582. package/src/_modules/ngx-models/_models/control-models/button-new-style-settings.control-model.ts +37 -37
  583. package/src/_modules/ngx-models/_models/control-models/button-params.control-model.spec.ts +70 -70
  584. package/src/_modules/ngx-models/_models/control-models/button-params.control-model.ts +332 -332
  585. package/src/_modules/ngx-models/_models/control-models/chat/chat-column-layout-settings.control-model.ts +28 -28
  586. package/src/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.spec.ts +90 -90
  587. package/src/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.ts +134 -134
  588. package/src/_modules/ngx-models/_models/control-models/data-handler.control-model.ts +529 -529
  589. package/src/_modules/ngx-models/_models/control-models/errors/error-notification.control-model.ts +52 -52
  590. package/src/_modules/ngx-models/_models/control-models/errors/error-settings.control-model.ts +34 -34
  591. package/src/_modules/ngx-models/_models/control-models/errors/errors-pojo.spec.ts +86 -86
  592. package/src/_modules/ngx-models/_models/control-models/errors/errors-settings.control-model.ts +52 -52
  593. package/src/_modules/ngx-models/_models/control-models/field-settings.control-model.spec.ts +109 -109
  594. package/src/_modules/ngx-models/_models/control-models/field-settings.control-model.ts +133 -133
  595. package/src/_modules/ngx-models/_models/control-models/form-settings.control-model.spec.ts +109 -109
  596. package/src/_modules/ngx-models/_models/control-models/form-settings.control-model.ts +160 -160
  597. package/src/_modules/ngx-models/_models/control-models/forms-new/checkbox-field-new-settings.control-model.ts +25 -25
  598. package/src/_modules/ngx-models/_models/control-models/forms-new/date-field-new-settings.control-model.ts +26 -26
  599. package/src/_modules/ngx-models/_models/control-models/forms-new/date-range-field-new-settings.control-model.ts +42 -42
  600. package/src/_modules/ngx-models/_models/control-models/forms-new/datetime-field-new-settings.control-model.ts +35 -35
  601. package/src/_modules/ngx-models/_models/control-models/forms-new/datetime-range-field-new-settings.control-model.ts +35 -35
  602. package/src/_modules/ngx-models/_models/control-models/forms-new/field-new-settings.control-model.ts +85 -85
  603. package/src/_modules/ngx-models/_models/control-models/forms-new/field-new-types.ts +42 -42
  604. package/src/_modules/ngx-models/_models/control-models/forms-new/form-new-settings.control-model.ts +40 -40
  605. package/src/_modules/ngx-models/_models/control-models/forms-new/forms-new.spec.ts +179 -179
  606. package/src/_modules/ngx-models/_models/control-models/forms-new/index.ts +20 -20
  607. package/src/_modules/ngx-models/_models/control-models/forms-new/multiselect-field-new-settings.control-model.ts +27 -27
  608. package/src/_modules/ngx-models/_models/control-models/forms-new/number-field-new-settings.control-model.ts +24 -24
  609. package/src/_modules/ngx-models/_models/control-models/forms-new/password-field-new-settings.control-model.ts +35 -35
  610. package/src/_modules/ngx-models/_models/control-models/forms-new/radio-select-field-new-settings.control-model.ts +35 -35
  611. package/src/_modules/ngx-models/_models/control-models/forms-new/select-field-new-settings.control-model.ts +46 -46
  612. package/src/_modules/ngx-models/_models/control-models/forms-new/slider-field-new-settings.control-model.ts +37 -37
  613. package/src/_modules/ngx-models/_models/control-models/forms-new/slider-range-field-new-settings.control-model.ts +45 -45
  614. package/src/_modules/ngx-models/_models/control-models/forms-new/text-field-new-settings.control-model.ts +30 -30
  615. package/src/_modules/ngx-models/_models/control-models/forms-new/textarea-field-new-settings.control-model.ts +22 -22
  616. package/src/_modules/ngx-models/_models/control-models/frames/frames-pojo.spec.ts +108 -108
  617. package/src/_modules/ngx-models/_models/control-models/frames/header-item-settings.control-model.ts +52 -52
  618. package/src/_modules/ngx-models/_models/control-models/frames/main-frame-settings.control-model.ts +40 -40
  619. package/src/_modules/ngx-models/_models/control-models/frames/side-nav-item-settings.control-model.ts +55 -55
  620. package/src/_modules/ngx-models/_models/control-models/frames/side-nav-settings.control-model.ts +30 -30
  621. package/src/_modules/ngx-models/_models/control-models/select.control-model.spec.ts +45 -45
  622. package/src/_modules/ngx-models/_models/control-models/select.control-model.ts +28 -28
  623. package/src/_modules/ngx-models/_models/control-models/voice/voice-pojo.spec.ts +111 -111
  624. package/src/_modules/ngx-models/_models/control-models/voice/voice-providers-settings.control-model.ts +74 -74
  625. package/src/_modules/ngx-models/_models/control-models/voice/voice-record-button-settings.control-model.ts +42 -42
  626. package/src/_modules/ngx-models/_models/control-models/voice/voice-recorder-settings.control-model.ts +37 -37
  627. package/src/_modules/ngx-models/_models/interfaces/button-new-settings.interface.ts +74 -74
  628. package/src/_modules/ngx-models/_models/interfaces/confirm-settings.interface.ts +20 -20
  629. package/src/_modules/ngx-models/_models/interfaces/global-settings.interface.ts +67 -67
  630. package/src/_modules/ngx-models/_models/interfaces/select-options-custom-constructor.interface.ts +40 -40
  631. package/src/_modules/ngx-models/_models/interfaces/storage.service.spec.ts +18 -18
  632. package/src/_modules/ngx-models/_models/interfaces/storage.service.ts +40 -40
  633. package/src/_modules/ngx-models/_models/interfaces/voice/speak-options.interface.ts +19 -19
  634. package/src/_modules/ngx-models/_models/interfaces/voice/speak-result.interface.ts +14 -14
  635. package/src/_modules/ngx-models/_models/interfaces/voice/transcribe-options.interface.ts +14 -14
  636. package/src/_modules/ngx-models/_models/interfaces/voice/transcribe-result.interface.ts +15 -15
  637. package/src/_modules/ngx-models/_models/interfaces/voice/voice-profile.interface.ts +18 -18
  638. package/src/_modules/ngx-models/_models/interfaces/voice/voice-provider-init.interface.ts +21 -21
  639. package/src/_modules/ngx-models/_utils/shared.service.spec.ts +7 -7
  640. package/src/_modules/ngx-models/_utils/shared.service.ts +541 -541
  641. package/src/_modules/ngx-models/index.ts +110 -110
  642. package/src/_modules/pipe/_collections/pip-transforms.const.ts +42 -42
  643. package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.spec.ts +47 -47
  644. package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.ts +41 -41
  645. package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.spec.ts +39 -39
  646. package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.ts +30 -30
  647. package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.spec.ts +41 -41
  648. package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.ts +36 -36
  649. package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.spec.ts +62 -62
  650. package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.ts +17 -17
  651. package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.spec.ts +34 -34
  652. package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.ts +25 -25
  653. package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.spec.ts +67 -67
  654. package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.ts +226 -226
  655. package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.spec.ts +28 -28
  656. package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.ts +21 -21
  657. package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.spec.ts +59 -59
  658. package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.ts +106 -106
  659. package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.spec.ts +31 -31
  660. package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.ts +35 -35
  661. package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.spec.ts +44 -44
  662. package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.ts +23 -23
  663. package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.spec.ts +21 -21
  664. package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.ts +33 -33
  665. package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.spec.ts +62 -62
  666. package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.ts +80 -80
  667. package/src/_modules/pipe/_enums/pip-range-pipe-setting.enum.ts +15 -15
  668. package/src/_modules/pipe/_enums/pip.enum.ts +65 -65
  669. package/src/_modules/pipe/_models/pip-multi-pipe-settings.type.ts +8 -8
  670. package/src/_modules/pipe/_models/pip-transforms.interface.ts +30 -30
  671. package/src/_modules/pipe/index.ts +30 -30
  672. package/src/_modules/security/_collections/stored-secret.util.spec.ts +81 -81
  673. package/src/_modules/security/_collections/stored-secret.util.ts +96 -96
  674. package/src/_modules/security/_models/stored-secret.control-model.ts +55 -55
  675. package/src/_modules/security/index.ts +9 -9
  676. package/src/_modules/socket/_enums/sck-event-key.enum.ts +21 -21
  677. package/src/_modules/socket/_models/sck-client-params.control-model.spec.ts +67 -67
  678. package/src/_modules/socket/_models/sck-client-params.control-model.ts +50 -50
  679. package/src/_modules/socket/_models/sck-socket-event.control-model.spec.ts +89 -66
  680. package/src/_modules/socket/_models/sck-socket-event.control-model.ts +185 -172
  681. package/src/_modules/socket/_services/sck-client.service-base.spec.ts +99 -99
  682. package/src/_modules/socket/_services/sck-client.service-base.ts +353 -353
  683. package/src/_modules/socket/index.ts +14 -14
  684. package/src/_modules/state-machine/_models/state-machine-config.interface.ts +19 -19
  685. package/src/_modules/state-machine/_models/state-machine-event.interface.ts +25 -25
  686. package/src/_modules/state-machine/_models/state-machine.control-model.spec.ts +314 -314
  687. package/src/_modules/state-machine/_models/state-machine.control-model.ts +298 -298
  688. package/src/_modules/state-machine/_models/state-transition-result.interface.ts +53 -53
  689. package/src/_modules/state-machine/_models/state-transition.interface.ts +30 -30
  690. package/src/_modules/state-machine/index.ts +6 -6
  691. package/src/_modules/test/_collections/tst-module-settings.const.ts +67 -67
  692. package/src/_modules/test/index.ts +5 -5
  693. package/src/_modules/usage/_collections/usg-module-settings.const.ts +33 -33
  694. package/src/_modules/usage/_models/usg-action.control-model.spec.ts +27 -27
  695. package/src/_modules/usage/_models/usg-action.control-model.ts +28 -28
  696. package/src/_modules/usage/_models/usg-daily-usage-data.control-model.spec.ts +36 -36
  697. package/src/_modules/usage/_models/usg-daily-usage-data.control-model.ts +35 -35
  698. package/src/_modules/usage/_models/usg-data.control-model.spec.ts +41 -41
  699. package/src/_modules/usage/_models/usg-data.control-model.ts +35 -35
  700. package/src/_modules/usage/_models/usg-session.data-model.spec.ts +97 -97
  701. package/src/_modules/usage/_models/usg-session.data-model.ts +72 -72
  702. package/src/_modules/usage/index.ts +11 -11
  703. package/src/index.ts +104 -104
  704. package/tsconfig.app.json +12 -12
  705. package/tsconfig.json +31 -31
  706. package/tsconfig.test.json +16 -16
  707. package/tslint.json +153 -153
package/README.md CHANGED
@@ -1,693 +1,701 @@
1
- # @futdevpro/fsm-dynamo
2
-
3
- [![npm version](https://img.shields.io/npm/v/@futdevpro/fsm-dynamo.svg)](https://www.npmjs.com/package/@futdevpro/fsm-dynamo)
4
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
-
6
- **Full Stack Model Collection for Dynamic (NodeJS-TypeScript) Framework**
7
-
8
- Dynamo FSM (Full Stack Module) is the foundational TypeScript package that provides the core infrastructure and shared utilities for building full-stack applications. It serves as the base structure for all other Dynamo projects, establishing consistent patterns, type definitions, and interfaces that ensure seamless integration between frontend and backend implementations.
9
-
10
- **Naming Convention**: All exports from Dynamo FSM use the `DyFM_*` prefix (Dynamo Full Stack Module), ensuring clear identification and preventing naming conflicts. This consistent prefix pattern makes it easy to identify FSM utilities, classes, interfaces, and enums throughout your codebase.
11
-
12
- ## Table of Contents
13
-
14
- - [Introduction](#introduction)
15
- - [Features](#features)
16
- - [Installation](#installation)
17
- - [Quick Start](#quick-start)
18
- - [Modules](#modules)
19
- - [Common Usage Patterns](#common-usage-patterns)
20
- - [API Reference](#api-reference)
21
- - [Requirements](#requirements)
22
- - [Support & Contributing](#support--contributing)
23
- - [License](#license)
24
-
25
- ## Introduction
26
-
27
- Dynamo FSM provides core utilities for data manipulation, error handling, logging, state management, and more. It includes modules covering AI integration, real-time communication, location services, data transformation, and testing tools. This package serves as the base structure for all other Dynamo projects.
28
-
29
- **Naming Convention**: All exports from Dynamo FSM use the `DyFM_*` prefix (Dynamo Full Stack Module). This consistent naming pattern makes it easy to identify FSM utilities, classes, interfaces, enums, and constants throughout your codebase. Examples include `DyFM_Array`, `DyFM_Log`, `DyFM_Error`, `DyFM_DataHandler`, and `DyFM_Metadata`.
30
-
31
- ### Dynamo Packages Using FSM
32
-
33
- Dynamo FSM is the foundational package used by all other Dynamo packages:
34
-
35
- - **[Dynamo-NTS](https://www.npmjs.com/package/@futdevpro/dynamo-nts)** - Backend framework for Node.js with TypeScript
36
- - **[Dynamo NGX Models](https://www.npmjs.com/package/@futdevpro/ngx-dynamo-models)** - Model definitions for Angular applications
37
- - **[Dynamo NGX](https://www.npmjs.com/package/@futdevpro/ngx-dynamo)** - Angular framework with Material Design and Tailwind CSS
38
-
39
- All these packages build upon Dynamo FSM's core interfaces, types, and utilities, ensuring consistency and type safety across the entire Dynamo ecosystem.
40
-
41
- ### Key Characteristics
42
-
43
- - **Zero Dependencies**: The foundational package has no dependencies (except peer dependencies), making it the base upon which all other Dynamo packages are built
44
- - **Type-Safe Full-Stack Development**: Shared interfaces and models ensure data structures, API contracts, and business logic remain consistent from database to UI
45
- - **Comprehensive Utility Library**: Utilities for arrays, strings, dates, UUIDs, error handling, logging, and more
46
- - **Modular Architecture**: Import only what you need, keeping bundle sizes small while providing access to a comprehensive toolkit
47
-
48
- ## Features
49
-
50
- ### Core Utilities
51
- - **Array Manipulation**: Advanced array operations with async support (`DyFM_Array`)
52
- - **String Operations**: Comprehensive string manipulation utilities (`DyFM_String`)
53
- - **Time & Date**: Advanced time manipulation and formatting (`DyFM_Time`)
54
- - **UUID Generation**: Secure UUID generation utilities (`DyFM_UUID`)
55
- - **Logging**: Advanced logging with customizable styling (`DyFM_Log`)
56
- - **Error Handling**: Standardized error handling with configurable severity levels (`DyFM_Error`)
57
- - **Data Transformation**: Type-safe cloning and data manipulation utilities
58
-
59
- ### Specialized Modules
60
- - **AI Integration**: Unified interface for multiple AI providers (OpenAI, Anthropic, Google, Local AI)
61
- - **Reactive Data Management**: RxJS-based data handlers for single items, lists, and searchable data
62
- - **Real-Time Communication**: Socket.IO integration for bidirectional communication
63
- - **Location Services**: Comprehensive geographical data handling with country information
64
- - **Messaging System**: Unified messaging for user↔user and user↔AI communication
65
- - **Data Transformation**: Specialized pipes for geographic data, string manipulation, and formatting
66
- - **Crypto Utilities**: Deterministic encryption/decryption using AES-256-CBC
67
- - **Testing Tools**: Comprehensive HTTP endpoint testing utilities
68
- - **Analytics**: User behavior tracking and usage analytics
69
-
70
- ## Installation
71
-
72
- ```bash
73
- npm install @futdevpro/fsm-dynamo
74
- ```
75
-
76
- or
77
-
78
- ```bash
79
- pnpm add @futdevpro/fsm-dynamo
80
- ```
81
-
82
- ## Quick Start
83
-
84
- ### Basic Utility Usage
85
-
86
- ```typescript
87
- import { DyFM_Array, DyFM_String, DyFM_Log, DyFM_Error, DyFM_ErrorLevel } from '@futdevpro/fsm-dynamo';
88
-
89
- // Array operations
90
- const numbers = [1, 2, 3, 4, 5];
91
- const doubled = DyFM_Array.map(numbers, (n) => n * 2);
92
-
93
- // String operations
94
- const formatted = DyFM_String.capitalize('hello world'); // "Hello World"
95
-
96
- // Logging
97
- DyFM_Log.info('Application started');
98
- DyFM_Log.warn('This is a warning');
99
- DyFM_Log.error('An error occurred');
100
-
101
- // Special logging methods
102
- DyFM_Log.H_error('Highlighted error message'); // Highlighted error with visual formatting
103
- DyFM_Log.T_error('Test error message'); // Test error with special formatting
104
-
105
- // Error handling
106
- const error = new DyFM_Error({
107
- errorCode: 'USER_NOT_FOUND',
108
- message: 'User with ID 123 not found',
109
- userMessage: 'User not found',
110
- level: DyFM_ErrorLevel.error
111
- });
112
-
113
- // Or use static method for any error type
114
- DyFM_Error.logSimple('Operation failed', error);
115
- ```
116
-
117
- ### Data Handler Example
118
-
119
- ```typescript
120
- import { DyFM_DataHandler } from '@futdevpro/fsm-dynamo/data-handler';
121
- import { DyFM_Metadata } from '@futdevpro/fsm-dynamo';
122
-
123
- interface User extends DyFM_Metadata {
124
- name: string;
125
- email: string;
126
- }
127
-
128
- class UserHandler extends DyFM_DataHandler<User> {
129
- constructor(apiService: any) {
130
- super({
131
- name: 'UserHandler',
132
- get: async (userId: string) => {
133
- return await apiService.getUser(userId);
134
- },
135
- set: async (user: User) => {
136
- return await apiService.updateUser(user);
137
- }
138
- });
139
- }
140
- }
141
-
142
- // Usage
143
- const userHandler = new UserHandler(apiService);
144
- await userHandler.reload('user-123');
145
- userHandler.data$.subscribe(user => {
146
- console.log('User loaded:', user);
147
- });
148
- ```
149
-
150
- ### AI Module Example
151
-
152
- ```typescript
153
- import { DyFM_AI_Provider, DyFM_AI_MessageRole } from '@futdevpro/fsm-dynamo/ai';
154
- import { DyFM_OAI_Model } from '@futdevpro/fsm-dynamo/ai/open-ai';
155
-
156
- // Configure AI provider
157
- const aiConfig = {
158
- provider: DyFM_AI_Provider.OpenAI,
159
- apiKey: process.env.OPENAI_API_KEY,
160
- model: DyFM_OAI_Model.gpt_4o_latest
161
- };
162
-
163
- // Create AI request
164
- const aiRequest = {
165
- messages: [
166
- {
167
- role: DyFM_AI_MessageRole.user,
168
- content: 'Hello, how are you?'
169
- }
170
- ],
171
- settings: aiConfig
172
- };
173
- ```
174
-
175
- ## Modules
176
-
177
- Dynamo FSM is organized into 12 specialized modules, each providing focused functionality for specific use cases.
178
-
179
- ### 1. Main Module
180
-
181
- **Import:** `@futdevpro/fsm-dynamo`
182
-
183
- The core foundation providing essential utilities, constants, enums, and models for state management and data handling.
184
-
185
- **Key Features:**
186
- - Core utilities for array manipulation, logging, string operations, and type-safe data handling
187
- - Constants for times, data sizes, numbers, and global settings
188
- - Enums for error levels, HTTP types, log styles, and more
189
- - Models for error handling, data properties, and service endpoints
190
-
191
- **Example:**
192
- ```typescript
193
- import {
194
- DyFM_Array,
195
- DyFM_Log,
196
- DyFM_Error,
197
- DyFM_times,
198
- DyFM_ErrorLevel
199
- } from '@futdevpro/fsm-dynamo';
200
-
201
- // Use time constants
202
- const oneDay = DyFM_times.day; // 86400000 milliseconds
203
-
204
- // Array operations
205
- const result = DyFM_Array.filter([1, 2, 3, 4], n => n > 2);
206
- ```
207
-
208
- ### 2. AI Module
209
-
210
- **Import:** `@futdevpro/fsm-dynamo/ai`
211
-
212
- Unified interface for interacting with multiple AI providers (OpenAI, Anthropic, Google, Local AI).
213
-
214
- **Key Features:**
215
- - Standardized models and interfaces for LLM operations
216
- - Embedding support across providers
217
- - Provider capability detection
218
- - Flexible configuration options
219
-
220
- **Submodules:**
221
- - `@futdevpro/fsm-dynamo/ai/open-ai` - OpenAI-specific implementations
222
- - `@futdevpro/fsm-dynamo/ai/anthropic` - Anthropic (Claude) implementations
223
- - `@futdevpro/fsm-dynamo/ai/google` - Google AI implementations
224
- - `@futdevpro/fsm-dynamo/ai/local` - Local AI implementations
225
-
226
- **Example:**
227
- ```typescript
228
- import { DyFM_AI_Provider, DyFM_AI_MessageRole } from '@futdevpro/fsm-dynamo/ai';
229
- import { DyFM_OAI_Model } from '@futdevpro/fsm-dynamo/ai/open-ai';
230
-
231
- const config = {
232
- provider: DyFM_AI_Provider.OpenAI,
233
- model: DyFM_OAI_Model.gpt_4o_latest
234
- };
235
- ```
236
-
237
- **See also:**
238
- - [OpenAI-compatible providers how-to (LM Studio / Ollama / vLLM / LocalAI)](__documentations/2026-05-17-oai-compatible-providers-howto.md) — `DyFM_OAI_ClientOptions.baseURL`-override mintázattal lokál és self-hosted LLM-ek
239
-
240
- ### 3. Data Handler Module
241
-
242
- **Import:** `@futdevpro/fsm-dynamo/data-handler`
243
-
244
- Reactive data management utilities using RxJS BehaviorSubjects and Observables.
245
-
246
- **Key Features:**
247
- - Automatic loading prevention (prevents multiple simultaneous load calls)
248
- - Post-processing support for data transformation
249
- - Dependency management for dependent data handlers
250
- - Specialized handlers for lists, searchable data, and pagination
251
-
252
- **Classes:**
253
- - `DyFM_DataHandler` - Base handler for single data items
254
- - `DyFM_DataListHandler` - Handler for array data
255
- - `DyFM_DataSearchHandler` - Handler for searchable data with pagination
256
- - `DyFM_ListCollectorDataHandler` - Handler for list collections within parent objects
257
-
258
- **Example:**
259
- ```typescript
260
- import { DyFM_DataListHandler } from '@futdevpro/fsm-dynamo/data-handler';
261
-
262
- const listHandler = new DyFM_DataListHandler({
263
- name: 'UsersList',
264
- get: async () => await apiService.getUsers(),
265
- setItem: async (user) => await apiService.updateUser(user),
266
- deleteItem: async (userId) => await apiService.deleteUser(userId)
267
- });
268
-
269
- listHandler.dataList$.subscribe(users => {
270
- console.log('Users updated:', users);
271
- });
272
- ```
273
-
274
- ### 4. Location Module
275
-
276
- **Import:** `@futdevpro/fsm-dynamo/location`
277
-
278
- Comprehensive suite for handling geographical data and location-based functionality.
279
-
280
- **Key Features:**
281
- - Country information management with ISO codes
282
- - Administrative divisions data
283
- - Geographical utilities for coordinates and distance calculations
284
- - Region classification and IP-based location services
285
- - Phone code integration
286
-
287
- **Example:**
288
- ```typescript
289
- import {
290
- DyFM_CountryISOs,
291
- DyFM_LocationUtils,
292
- DyFM_RegionsUtils
293
- } from '@futdevpro/fsm-dynamo/location';
294
-
295
- const country = DyFM_CountryISOs.getByISO('US');
296
- const distance = DyFM_LocationUtils.calculateDistance(
297
- { lat: 40.7128, lng: -74.0060 },
298
- { lat: 34.0522, lng: -118.2437 }
299
- );
300
- ```
301
-
302
- ### 5. Messaging Module
303
-
304
- **Import:** `@futdevpro/fsm-dynamo/messaging`
305
-
306
- Unified messaging system for user↔user and user↔AI communication.
307
-
308
- **Key Features:**
309
- - Support for direct, group, assistant chat, and channel conversations
310
- - Message types: text, attachments, reactions, mentions, threads
311
- - Real-time capabilities with socket integration
312
- - Agent process visualization for AI reasoning
313
- - Participant role management
314
-
315
- **Example:**
316
- ```typescript
317
- import {
318
- DyFM_Msg_Message,
319
- DyFM_Msg_Type,
320
- DyFM_Msg_Status
321
- } from '@futdevpro/fsm-dynamo/messaging';
322
-
323
- const message = new DyFM_Msg_Message({
324
- conversationId: 'conv-123',
325
- senderId: 'user-456',
326
- content: 'Hello, world!',
327
- type: DyFM_Msg_Type.text,
328
- status: DyFM_Msg_Status.sent
329
- });
330
- ```
331
-
332
- ### 6. Socket Module
333
-
334
- **Import:** `@futdevpro/fsm-dynamo/socket`
335
-
336
- Real-time bidirectional communication using Socket.IO.
337
-
338
- **Key Features:**
339
- - Event management with predefined event keys
340
- - Client configuration and connection management
341
- - Automatic reconnection logic
342
- - Observable properties for connection and subscription states
343
- - Base service class for custom socket clients
344
-
345
- **Example:**
346
- ```typescript
347
- import {
348
- DyFM_SocketClient_ServiceBase,
349
- DyFM_SocketEvent_Key
350
- } from '@futdevpro/fsm-dynamo/socket';
351
-
352
- class MySocketClient extends DyFM_SocketClient_ServiceBase {
353
- // Implementation
354
- }
355
- ```
356
-
357
- ### 7. Pipe Module
358
-
359
- **Import:** `@futdevpro/fsm-dynamo/pipe`
360
-
361
- Data transformation utilities for manipulating and formatting data.
362
-
363
- **Key Features:**
364
- - Specialized pipes for geographic data, string manipulation, and data formatting
365
- - UI component support with Angular pipe integration
366
- - Multi-pipe functionality for complex transformations
367
- - Country, region, and division formatting
368
-
369
- **Example:**
370
- ```typescript
371
- import { DyFM_pipeTransforms } from '@futdevpro/fsm-dynamo/pipe';
372
-
373
- const formatted = DyFM_pipeTransforms.country('US'); // "United States"
374
- ```
375
-
376
- ### 8. Crypto Module
377
-
378
- **Import:** `@futdevpro/fsm-dynamo/crypto`
379
-
380
- Deterministic encryption and decryption utilities using AES-256-CBC.
381
-
382
- **Key Features:**
383
- - Deterministic encryption (same input + key = same output)
384
- - Cross-platform compatibility
385
- - URL-safe base64 encoding
386
- - Secure random key generation
387
-
388
- **Important:** This implementation produces identical encrypted output for identical input data and key. Use when consistency across systems is more important than cryptographic security.
389
-
390
- **Example:**
391
- ```typescript
392
- import { DyFM_Crypto } from '@futdevpro/fsm-dynamo/crypto';
393
-
394
- const encrypted = DyFM_Crypto.encrypt('sensitive data', 'my-secret-key');
395
- const decrypted = DyFM_Crypto.decrypt(encrypted, 'my-secret-key');
396
- ```
397
-
398
- ### 9. Custom Data Module
399
-
400
- **Import:** `@futdevpro/fsm-dynamo/custom-data`
401
-
402
- Flexible storage and management of custom data with metadata support.
403
-
404
- **Key Features:**
405
- - Type-safe data containers with validation rules
406
- - RESTful API endpoints for data operations
407
- - Metadata support for tracking and organization
408
-
409
- **Example:**
410
- ```typescript
411
- import { DyFM_CustomData } from '@futdevpro/fsm-dynamo/custom-data';
412
-
413
- const customData = new DyFM_CustomData({
414
- key: 'user-preferences',
415
- value: { theme: 'dark', language: 'en' },
416
- __createdBy: 'user-123'
417
- });
418
- ```
419
-
420
- ### 10. Test Module
421
-
422
- **Import:** `@futdevpro/fsm-dynamo/test`
423
-
424
- Comprehensive testing tools for HTTP endpoints.
425
-
426
- **Key Features:**
427
- - Complete suite of HTTP method test endpoints
428
- - Server status monitoring
429
- - Structured response handling
430
-
431
- ### 11. Usage Module
432
-
433
- **Import:** `@futdevpro/fsm-dynamo/usage`
434
-
435
- User behavior tracking and analytics tools.
436
-
437
- **Key Features:**
438
- - Session management
439
- - Usage analytics and geographic insights
440
- - Daily statistics and action tracking
441
-
442
- **Example:**
443
- ```typescript
444
- import { DyFM_UsageSession } from '@futdevpro/fsm-dynamo/usage';
445
-
446
- const session = new DyFM_UsageSession({
447
- userId: 'user-123',
448
- startTime: new Date(),
449
- __createdBy: 'system'
450
- });
451
- ```
452
-
453
- ### 12. CI Tools Module
454
-
455
- **Import:** `@futdevpro/fsm-dynamo/ci-tools`
456
-
457
- Models and enums for tracking CI/CD pipeline results.
458
-
459
- **Key Features:**
460
- - Build, test, and deployment pipeline tracking
461
- - Detailed step-by-step results
462
- - Result code enums for standardized status reporting
463
-
464
- **Example:**
465
- ```typescript
466
- import {
467
- DyFM_CIT_CIResultCode,
468
- DyFM_CIT_CIResultInfo
469
- } from '@futdevpro/fsm-dynamo/ci-tools';
470
-
471
- const ciResult: DyFM_CIT_CIResultInfo = {
472
- resultCode: DyFM_CIT_CIResultCode.success,
473
- // ... other properties
474
- };
475
- ```
476
-
477
- ## Common Usage Patterns
478
-
479
- ### Import Patterns
480
-
481
- All exports use the `DyFM_` prefix (Dynamo Full Stack Module):
482
-
483
- ```typescript
484
- // Main module
485
- import { DyFM_Array, DyFM_Log, DyFM_Error } from '@futdevpro/fsm-dynamo';
486
-
487
- // Specific modules
488
- import { DyFM_DataHandler } from '@futdevpro/fsm-dynamo/data-handler';
489
- import { DyFM_AI_Provider } from '@futdevpro/fsm-dynamo/ai';
490
- import { DyFM_Crypto } from '@futdevpro/fsm-dynamo/crypto';
491
- ```
492
-
493
- ### Type Safety
494
-
495
- Dynamo FSM provides full TypeScript support with strict typing:
496
-
497
- ```typescript
498
- import { DyFM_Metadata, DyFM_Error, DyFM_ErrorLevel } from '@futdevpro/fsm-dynamo';
499
-
500
- interface User extends DyFM_Metadata {
501
- name: string;
502
- email: string;
503
- }
504
-
505
- // Type-safe error handling
506
- const error = new DyFM_Error({
507
- errorCode: 'VALIDATION_ERROR',
508
- message: 'Invalid user data',
509
- level: DyFM_ErrorLevel.warning
510
- });
511
- ```
512
-
513
- ### Error Handling Pattern
514
-
515
- ```typescript
516
- import { DyFM_Error, DyFM_ErrorLevel, DyFM_Log } from '@futdevpro/fsm-dynamo';
517
-
518
- try {
519
- // Your code
520
- } catch (err) {
521
- if (err instanceof DyFM_Error && err.___handled) {
522
- // Error already handled
523
- return;
524
- }
525
-
526
- const error = new DyFM_Error({
527
- errorCode: 'OPERATION_FAILED',
528
- message: err.message,
529
- userMessage: 'An error occurred',
530
- level: DyFM_ErrorLevel.error
531
- });
532
-
533
- // Use logSimple for formatted error logging
534
- error.logSimple('Operation failed');
535
- // Or use static method
536
- DyFM_Error.logSimple('Operation failed', error);
537
-
538
- throw error;
539
- }
540
- ```
541
-
542
- ### Special Logging Methods
543
-
544
- Dynamo FSM provides specialized logging methods for different use cases:
545
-
546
- ```typescript
547
- import { DyFM_Log, DyFM_Error } from '@futdevpro/fsm-dynamo';
548
-
549
- // Highlighted error - displays error with visual formatting
550
- DyFM_Log.H_error('Critical error occurred', errorDetails);
551
- // Alias: DyFM_Log.highlightedError()
552
-
553
- // Test error - displays error with test-specific formatting
554
- DyFM_Log.T_error('Test error message', testData);
555
- // Alias: DyFM_Log.testError()
556
-
557
- // Simple error logging - formatted error output with error code, message, stack
558
- const error = new DyFM_Error({
559
- errorCode: 'VALIDATION_ERROR',
560
- message: 'Invalid input',
561
- level: DyFM_ErrorLevel.error
562
- });
563
-
564
- // Static method for any error type
565
- DyFM_Error.logSimple('Operation failed', error);
566
- // Works with both DyFM_Error instances and regular Error objects
567
- ```
568
-
569
- ### Constants Usage
570
-
571
- ```typescript
572
- import { DyFM_times, DyFM_data_sizes, DyFM_numbers } from '@futdevpro/fsm-dynamo';
573
-
574
- // Time constants
575
- const oneHour = DyFM_times.hour;
576
- const oneDay = DyFM_times.day;
577
- const oneWeek = DyFM_times.week;
578
-
579
- // Data size constants
580
- const maxStringLength = DyFM_data_sizes.maxStringLength;
581
-
582
- // Number constants
583
- const maxSafeInteger = DyFM_numbers.maxSafeInteger;
584
- ```
585
-
586
- ## API Reference
587
-
588
- ### Main Exports
589
-
590
- The main module exports utilities, constants, enums, and models:
591
-
592
- **Constants:**
593
- - `DyFM_error_defaults` - Default error configuration
594
- - `DyFM_global_settings` - Global framework settings
595
- - `DyFM_numbers` - Standard numeric constants
596
- - `DyFM_times` - Time constants (second, minute, hour, day, week, month, year)
597
- - `DyFM_data_sizes` - Data size constants
598
-
599
- **Utilities:**
600
- - `DyFM_Array` - Array manipulation utilities
601
- - `DyFM_String` - String manipulation utilities
602
- - `DyFM_Log` - Logging utilities with special methods:
603
- - `DyFM_Log.H_error` / `DyFM_Log.highlightedError` - Big Highlighted error logging
604
- - `DyFM_Log.T_error` / `DyFM_Log.testError` - Mdium Highlighted error logging
605
- - `DyFM_Log.S_error` / `DyFM_Log.smallError` - Small Highlighted error logging
606
- - `DyFM_Time` - Time manipulation utilities
607
- - `DyFM_UUID` - UUID generation utilities
608
- - `DyFM_Data` - Data transformation utilities
609
- - `DyFM_Math` - Mathematical operations
610
- - `DyFM_Random` - Random number generation
611
-
612
- **Enums:**
613
- - `DyFM_ErrorLevel` - Error severity levels
614
- - `DyFM_LogStyle` - Text styling options
615
- - `DyFM_HttpCallType` - HTTP request methods
616
- - `DyFM_HttpResponseType` - HTTP response data types
617
- - `DyFM_EnvironmentFlag` - Environment types
618
-
619
- **Models:**
620
- - `DyFM_Error` - Error model with methods:
621
- - `logSimple()` - Formatted error logging with error code, message, stack, and additional content
622
- - `static logSimple()` - Static method for logging any error type
623
- - `DyFM_Metadata` - Base metadata model
624
- - `DyFM_SearchQuery` - Search query interface
625
- - `DyFM_SearchResult` - Search result interface
626
- - `DyFM_Paged` - Pagination interface
627
-
628
- ### Module Export Paths
629
-
630
- All modules can be imported directly:
631
-
632
- ```typescript
633
- // Main module
634
- import { ... } from '@futdevpro/fsm-dynamo';
635
-
636
- // Submodules
637
- import { ... } from '@futdevpro/fsm-dynamo/ai';
638
- import { ... } from '@futdevpro/fsm-dynamo/ai/open-ai';
639
- import { ... } from '@futdevpro/fsm-dynamo/ai/anthropic';
640
- import { ... } from '@futdevpro/fsm-dynamo/data-handler';
641
- import { ... } from '@futdevpro/fsm-dynamo/location';
642
- import { ... } from '@futdevpro/fsm-dynamo/messaging';
643
- import { ... } from '@futdevpro/fsm-dynamo/socket';
644
- import { ... } from '@futdevpro/fsm-dynamo/pipe';
645
- import { ... } from '@futdevpro/fsm-dynamo/crypto';
646
- import { ... } from '@futdevpro/fsm-dynamo/custom-data';
647
- import { ... } from '@futdevpro/fsm-dynamo/test';
648
- import { ... } from '@futdevpro/fsm-dynamo/usage';
649
- import { ... } from '@futdevpro/fsm-dynamo/ci-tools';
650
- ```
651
-
652
- For detailed API documentation, refer to the [Dynamo FSM Documentation](https://futdevpro.hu/projects/dynamo).
653
-
654
- ## Requirements
655
-
656
- - **TypeScript**: 5.5.4 or higher
657
- - **Node.js**: Compatible with Node.js LTS versions
658
- - **Peer Dependencies**:
659
- - `rxjs`: 7.8.1
660
-
661
- ## Support & Contributing
662
-
663
- ### Support
664
-
665
- - **Donations**: [https://futdevpro.hu/support/dynamo](https://futdevpro.hu/support/dynamo) - Support page for project donations
666
- - **Homepage**: [https://futdevpro.hu/projects/dynamo](https://futdevpro.hu/projects/dynamo)
667
- - **Feedback & Contact**: For feature requests, bug reports, or questions, please use the feedback page or contact us at:
668
- - contact@futdevpro.hu
669
- - support@futdevpro.hu
670
-
671
- ## License
672
-
673
- MIT License
674
-
675
- Copyright (c) Future Development Program Ltd. (HU)
676
-
677
- Permission is hereby granted, free of charge, to any person obtaining a copy
678
- of this software and associated documentation files (the "Software"), to deal
679
- in the Software without restriction, including without limitation the rights
680
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
681
- copies of the Software, and to permit persons to whom the Software is
682
- furnished to do so, subject to the following conditions:
683
-
684
- The above copyright notice and this permission notice shall be included in all
685
- copies or substantial portions of the Software.
686
-
687
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
688
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
689
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
690
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
691
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
692
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
693
- SOFTWARE.
1
+ # @futdevpro/fsm-dynamo
2
+
3
+ [![npm version](https://img.shields.io/npm/v/@futdevpro/fsm-dynamo.svg)](https://www.npmjs.com/package/@futdevpro/fsm-dynamo)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+
6
+ **Full Stack Model Collection for Dynamic (NodeJS-TypeScript) Framework**
7
+
8
+ Dynamo FSM (Full Stack Module) is the foundational TypeScript package that provides the core infrastructure and shared utilities for building full-stack applications. It serves as the base structure for all other Dynamo projects, establishing consistent patterns, type definitions, and interfaces that ensure seamless integration between frontend and backend implementations.
9
+
10
+ **Naming Convention**: All exports from Dynamo FSM use the `DyFM_*` prefix (Dynamo Full Stack Module), ensuring clear identification and preventing naming conflicts. This consistent prefix pattern makes it easy to identify FSM utilities, classes, interfaces, and enums throughout your codebase.
11
+
12
+ ## Table of Contents
13
+
14
+ - [Introduction](#introduction)
15
+ - [Features](#features)
16
+ - [Installation](#installation)
17
+ - [Quick Start](#quick-start)
18
+ - [Modules](#modules)
19
+ - [Common Usage Patterns](#common-usage-patterns)
20
+ - [API Reference](#api-reference)
21
+ - [Requirements](#requirements)
22
+ - [Support & Contributing](#support--contributing)
23
+ - [License](#license)
24
+
25
+ ## Introduction
26
+
27
+ Dynamo FSM provides core utilities for data manipulation, error handling, logging, state management, and more. It includes modules covering AI integration, real-time communication, location services, data transformation, and testing tools. This package serves as the base structure for all other Dynamo projects.
28
+
29
+ **Naming Convention**: All exports from Dynamo FSM use the `DyFM_*` prefix (Dynamo Full Stack Module). This consistent naming pattern makes it easy to identify FSM utilities, classes, interfaces, enums, and constants throughout your codebase. Examples include `DyFM_Array`, `DyFM_Log`, `DyFM_Error`, `DyFM_DataHandler`, and `DyFM_Metadata`.
30
+
31
+ ### Dynamo Packages Using FSM
32
+
33
+ Dynamo FSM is the foundational package used by all other Dynamo packages:
34
+
35
+ - **[Dynamo-NTS](https://www.npmjs.com/package/@futdevpro/dynamo-nts)** - Backend framework for Node.js with TypeScript
36
+ - **[Dynamo NGX Models](https://www.npmjs.com/package/@futdevpro/ngx-dynamo-models)** - Model definitions for Angular applications
37
+ - **[Dynamo NGX](https://www.npmjs.com/package/@futdevpro/ngx-dynamo)** - Angular framework with Material Design and Tailwind CSS
38
+
39
+ All these packages build upon Dynamo FSM's core interfaces, types, and utilities, ensuring consistency and type safety across the entire Dynamo ecosystem.
40
+
41
+ ### Key Characteristics
42
+
43
+ - **Zero Dependencies**: The foundational package has no dependencies (except peer dependencies), making it the base upon which all other Dynamo packages are built
44
+ - **Type-Safe Full-Stack Development**: Shared interfaces and models ensure data structures, API contracts, and business logic remain consistent from database to UI
45
+ - **Comprehensive Utility Library**: Utilities for arrays, strings, dates, UUIDs, error handling, logging, and more
46
+ - **Modular Architecture**: Import only what you need, keeping bundle sizes small while providing access to a comprehensive toolkit
47
+
48
+ ## Features
49
+
50
+ ### Core Utilities
51
+ - **Array Manipulation**: Advanced array operations with async support (`DyFM_Array`)
52
+ - **String Operations**: Comprehensive string manipulation utilities (`DyFM_String`)
53
+ - **Time & Date**: Advanced time manipulation and formatting (`DyFM_Time`)
54
+ - **UUID Generation**: Secure UUID generation utilities (`DyFM_UUID`)
55
+ - **Logging**: Advanced logging with customizable styling (`DyFM_Log`)
56
+ - **Error Handling**: Standardized error handling with configurable severity levels (`DyFM_Error`)
57
+ - **Data Transformation**: Type-safe cloning and data manipulation utilities
58
+
59
+ ### Specialized Modules
60
+ - **AI Integration**: Unified interface for multiple AI providers (OpenAI, Anthropic, Google, Local AI)
61
+ - **Reactive Data Management**: RxJS-based data handlers for single items, lists, and searchable data
62
+ - **Real-Time Communication**: Socket.IO integration for bidirectional communication
63
+ - **Location Services**: Comprehensive geographical data handling with country information
64
+ - **Messaging System**: Unified messaging for user↔user and user↔AI communication
65
+ - **Data Transformation**: Specialized pipes for geographic data, string manipulation, and formatting
66
+ - **Crypto Utilities**: Deterministic encryption/decryption using AES-256-CBC
67
+ - **Testing Tools**: Comprehensive HTTP endpoint testing utilities
68
+ - **Analytics**: User behavior tracking and usage analytics
69
+
70
+ ## Installation
71
+
72
+ ```bash
73
+ npm install @futdevpro/fsm-dynamo
74
+ ```
75
+
76
+ or
77
+
78
+ ```bash
79
+ pnpm add @futdevpro/fsm-dynamo
80
+ ```
81
+
82
+ ## Quick Start
83
+
84
+ ### Basic Utility Usage
85
+
86
+ ```typescript
87
+ import { DyFM_Array, DyFM_String, DyFM_Log, DyFM_Error, DyFM_ErrorLevel } from '@futdevpro/fsm-dynamo';
88
+
89
+ // Array operations
90
+ const numbers = [1, 2, 3, 4, 5];
91
+ const doubled = DyFM_Array.map(numbers, (n) => n * 2);
92
+
93
+ // String operations
94
+ const formatted = DyFM_String.capitalize('hello world'); // "Hello World"
95
+
96
+ // Logging
97
+ DyFM_Log.info('Application started');
98
+ DyFM_Log.warn('This is a warning');
99
+ DyFM_Log.error('An error occurred');
100
+
101
+ // Special logging methods
102
+ DyFM_Log.H_error('Highlighted error message'); // Highlighted error with visual formatting
103
+ DyFM_Log.T_error('Test error message'); // Test error with special formatting
104
+
105
+ // Error handling
106
+ const error = new DyFM_Error({
107
+ errorCode: 'USER_NOT_FOUND',
108
+ message: 'User with ID 123 not found',
109
+ userMessage: 'User not found',
110
+ level: DyFM_ErrorLevel.error
111
+ });
112
+
113
+ // Or use static method for any error type
114
+ DyFM_Error.logSimple('Operation failed', error);
115
+ ```
116
+
117
+ ### Data Handler Example
118
+
119
+ ```typescript
120
+ import { DyFM_DataHandler } from '@futdevpro/fsm-dynamo/data-handler';
121
+ import { DyFM_Metadata } from '@futdevpro/fsm-dynamo';
122
+
123
+ interface User extends DyFM_Metadata {
124
+ name: string;
125
+ email: string;
126
+ }
127
+
128
+ class UserHandler extends DyFM_DataHandler<User> {
129
+ constructor(apiService: any) {
130
+ super({
131
+ name: 'UserHandler',
132
+ get: async (userId: string) => {
133
+ return await apiService.getUser(userId);
134
+ },
135
+ set: async (user: User) => {
136
+ return await apiService.updateUser(user);
137
+ }
138
+ });
139
+ }
140
+ }
141
+
142
+ // Usage
143
+ const userHandler = new UserHandler(apiService);
144
+ await userHandler.reload('user-123');
145
+ userHandler.data$.subscribe(user => {
146
+ console.log('User loaded:', user);
147
+ });
148
+ ```
149
+
150
+ ### AI Module Example
151
+
152
+ ```typescript
153
+ import { DyFM_AI_Provider, DyFM_AI_MessageRole } from '@futdevpro/fsm-dynamo/ai';
154
+ import { DyFM_OAI_Model } from '@futdevpro/fsm-dynamo/ai/open-ai';
155
+
156
+ // Configure AI provider
157
+ const aiConfig = {
158
+ provider: DyFM_AI_Provider.OpenAI,
159
+ apiKey: process.env.OPENAI_API_KEY,
160
+ model: DyFM_OAI_Model.gpt_4o_latest
161
+ };
162
+
163
+ // Create AI request
164
+ const aiRequest = {
165
+ messages: [
166
+ {
167
+ role: DyFM_AI_MessageRole.user,
168
+ content: 'Hello, how are you?'
169
+ }
170
+ ],
171
+ settings: aiConfig
172
+ };
173
+ ```
174
+
175
+ ## Modules
176
+
177
+ Dynamo FSM is organized into 12 specialized modules, each providing focused functionality for specific use cases.
178
+
179
+ ### 1. Main Module
180
+
181
+ **Import:** `@futdevpro/fsm-dynamo`
182
+
183
+ The core foundation providing essential utilities, constants, enums, and models for state management and data handling.
184
+
185
+ **Key Features:**
186
+ - Core utilities for array manipulation, logging, string operations, and type-safe data handling
187
+ - Constants for times, data sizes, numbers, and global settings
188
+ - Enums for error levels, HTTP types, log styles, and more
189
+ - Models for error handling, data properties, and service endpoints
190
+
191
+ **Example:**
192
+ ```typescript
193
+ import {
194
+ DyFM_Array,
195
+ DyFM_Log,
196
+ DyFM_Error,
197
+ DyFM_times,
198
+ DyFM_ErrorLevel
199
+ } from '@futdevpro/fsm-dynamo';
200
+
201
+ // Use time constants
202
+ const oneDay = DyFM_times.day; // 86400000 milliseconds
203
+
204
+ // Array operations
205
+ const result = DyFM_Array.filter([1, 2, 3, 4], n => n > 2);
206
+ ```
207
+
208
+ ### 2. AI Module
209
+
210
+ **Import:** `@futdevpro/fsm-dynamo/ai`
211
+
212
+ Unified interface for interacting with multiple AI providers (OpenAI, Anthropic, Google, Local AI).
213
+
214
+ **Key Features:**
215
+ - Standardized models and interfaces for LLM operations
216
+ - Embedding support across providers
217
+ - Provider capability detection
218
+ - Flexible configuration options
219
+
220
+ **Submodules:**
221
+ - `@futdevpro/fsm-dynamo/ai/open-ai` - OpenAI-specific implementations
222
+ - `@futdevpro/fsm-dynamo/ai/anthropic` - Anthropic (Claude) implementations
223
+ - `@futdevpro/fsm-dynamo/ai/google` - Google AI implementations
224
+ - `@futdevpro/fsm-dynamo/ai/local` - Local AI implementations
225
+
226
+ **Example:**
227
+ ```typescript
228
+ import { DyFM_AI_Provider, DyFM_AI_MessageRole } from '@futdevpro/fsm-dynamo/ai';
229
+ import { DyFM_OAI_Model } from '@futdevpro/fsm-dynamo/ai/open-ai';
230
+
231
+ const config = {
232
+ provider: DyFM_AI_Provider.OpenAI,
233
+ model: DyFM_OAI_Model.gpt_4o_latest
234
+ };
235
+ ```
236
+
237
+ **See also:**
238
+ - [OpenAI-compatible providers how-to (LM Studio / Ollama / vLLM / LocalAI)](__documentations/2026-05-17-oai-compatible-providers-howto.md) — `DyFM_OAI_ClientOptions.baseURL`-override mintázattal lokál és self-hosted LLM-ek
239
+
240
+ ### 3. Data Handler Module
241
+
242
+ **Import:** `@futdevpro/fsm-dynamo/data-handler`
243
+
244
+ Reactive data management utilities using RxJS BehaviorSubjects and Observables.
245
+
246
+ **Key Features:**
247
+ - Automatic loading prevention (prevents multiple simultaneous load calls)
248
+ - Post-processing support for data transformation
249
+ - Dependency management for dependent data handlers
250
+ - Specialized handlers for lists, searchable data, and pagination
251
+
252
+ **Classes:**
253
+ - `DyFM_DataHandler` - Base handler for single data items
254
+ - `DyFM_DataListHandler` - Handler for array data
255
+ - `DyFM_DataSearchHandler` - Handler for searchable data with pagination
256
+ - `DyFM_ListCollectorDataHandler` - Handler for list collections within parent objects
257
+
258
+ **Example:**
259
+ ```typescript
260
+ import { DyFM_DataListHandler } from '@futdevpro/fsm-dynamo/data-handler';
261
+
262
+ const listHandler = new DyFM_DataListHandler({
263
+ name: 'UsersList',
264
+ get: async () => await apiService.getUsers(),
265
+ setItem: async (user) => await apiService.updateUser(user),
266
+ deleteItem: async (userId) => await apiService.deleteUser(userId)
267
+ });
268
+
269
+ listHandler.dataList$.subscribe(users => {
270
+ console.log('Users updated:', users);
271
+ });
272
+ ```
273
+
274
+ ### 4. Location Module
275
+
276
+ **Import:** `@futdevpro/fsm-dynamo/location`
277
+
278
+ Comprehensive suite for handling geographical data and location-based functionality.
279
+
280
+ **Key Features:**
281
+ - Country information management with ISO codes
282
+ - Administrative divisions data
283
+ - Geographical utilities for coordinates and distance calculations
284
+ - Region classification and IP-based location services
285
+ - Phone code integration
286
+
287
+ **Example:**
288
+ ```typescript
289
+ import {
290
+ DyFM_CountryISOs,
291
+ DyFM_LocationUtils,
292
+ DyFM_RegionsUtils
293
+ } from '@futdevpro/fsm-dynamo/location';
294
+
295
+ const country = DyFM_CountryISOs.getByISO('US');
296
+ const distance = DyFM_LocationUtils.calculateDistance(
297
+ { lat: 40.7128, lng: -74.0060 },
298
+ { lat: 34.0522, lng: -118.2437 }
299
+ );
300
+ ```
301
+
302
+ ### 5. Messaging Module
303
+
304
+ **Import:** `@futdevpro/fsm-dynamo/messaging`
305
+
306
+ Unified messaging system for user↔user and user↔AI communication.
307
+
308
+ **Key Features:**
309
+ - Support for direct, group, assistant chat, and channel conversations
310
+ - Message types: text, attachments, reactions, mentions, threads
311
+ - Real-time capabilities with socket integration
312
+ - Agent process visualization for AI reasoning
313
+ - Participant role management
314
+
315
+ **Example:**
316
+ ```typescript
317
+ import {
318
+ DyFM_Msg_Message,
319
+ DyFM_Msg_Type,
320
+ DyFM_Msg_Status
321
+ } from '@futdevpro/fsm-dynamo/messaging';
322
+
323
+ const message = new DyFM_Msg_Message({
324
+ conversationId: 'conv-123',
325
+ senderId: 'user-456',
326
+ content: 'Hello, world!',
327
+ type: DyFM_Msg_Type.text,
328
+ status: DyFM_Msg_Status.sent
329
+ });
330
+ ```
331
+
332
+ ### 6. Socket Module
333
+
334
+ **Import:** `@futdevpro/fsm-dynamo/socket`
335
+
336
+ Real-time bidirectional communication using Socket.IO.
337
+
338
+ **Key Features:**
339
+ - Event management with predefined event keys
340
+ - Client configuration and connection management
341
+ - Automatic reconnection logic
342
+ - Observable properties for connection and subscription states
343
+ - Base service class for custom socket clients
344
+
345
+ **Example:**
346
+ ```typescript
347
+ import {
348
+ DyFM_SocketClient_ServiceBase,
349
+ DyFM_SocketEvent_Key
350
+ } from '@futdevpro/fsm-dynamo/socket';
351
+
352
+ class MySocketClient extends DyFM_SocketClient_ServiceBase {
353
+ // Implementation
354
+ }
355
+ ```
356
+
357
+ ### 7. Pipe Module
358
+
359
+ **Import:** `@futdevpro/fsm-dynamo/pipe`
360
+
361
+ Data transformation utilities for manipulating and formatting data.
362
+
363
+ **Key Features:**
364
+ - Specialized pipes for geographic data, string manipulation, and data formatting
365
+ - UI component support with Angular pipe integration
366
+ - Multi-pipe functionality for complex transformations
367
+ - Country, region, and division formatting
368
+
369
+ **Example:**
370
+ ```typescript
371
+ import { DyFM_pipeTransforms } from '@futdevpro/fsm-dynamo/pipe';
372
+
373
+ const formatted = DyFM_pipeTransforms.country('US'); // "United States"
374
+ ```
375
+
376
+ ### 8. Crypto Module
377
+
378
+ **Import:** `@futdevpro/fsm-dynamo/crypto`
379
+
380
+ Deterministic encryption and decryption utilities using AES-256-CBC.
381
+
382
+ **Key Features:**
383
+ - Deterministic encryption (same input + key = same output)
384
+ - Cross-platform compatibility
385
+ - URL-safe base64 encoding
386
+ - Secure random key generation
387
+ - Cross-runtime ECDSA P-256 artifact signing and public-key verification
388
+ - Strict 64-byte IEEE P1363 signatures with unpadded Base64URL transport
389
+ - Content-free verification codes and canonical public-JWK fingerprints
390
+
391
+ **Important:** This implementation produces identical encrypted output for identical input data and key. Use when consistency across systems is more important than cryptographic security.
392
+
393
+ **Example:**
394
+ ```typescript
395
+ import { DyFM_Crypto } from '@futdevpro/fsm-dynamo/crypto';
396
+
397
+ const encrypted = DyFM_Crypto.encrypt('sensitive data', 'my-secret-key');
398
+ const decrypted = DyFM_Crypto.decrypt(encrypted, 'my-secret-key');
399
+ ```
400
+
401
+ For publication authenticity, `DyFM_ArtifactSignature_ControlService` signs exact caller-provided bytes with a
402
+ PKCS#8 private key and verifies them with a public P-256 JWK. Private material belongs in the consuming server's
403
+ FDP Keystore configuration and is never returned in signature evidence or sent to a browser. The verifier works
404
+ through Web Crypto in secure browser contexts and supported Node.js runtimes.
405
+
406
+ ### 9. Custom Data Module
407
+
408
+ **Import:** `@futdevpro/fsm-dynamo/custom-data`
409
+
410
+ Flexible storage and management of custom data with metadata support.
411
+
412
+ **Key Features:**
413
+ - Type-safe data containers with validation rules
414
+ - RESTful API endpoints for data operations
415
+ - Metadata support for tracking and organization
416
+
417
+ **Example:**
418
+ ```typescript
419
+ import { DyFM_CustomData } from '@futdevpro/fsm-dynamo/custom-data';
420
+
421
+ const customData = new DyFM_CustomData({
422
+ key: 'user-preferences',
423
+ value: { theme: 'dark', language: 'en' },
424
+ __createdBy: 'user-123'
425
+ });
426
+ ```
427
+
428
+ ### 10. Test Module
429
+
430
+ **Import:** `@futdevpro/fsm-dynamo/test`
431
+
432
+ Comprehensive testing tools for HTTP endpoints.
433
+
434
+ **Key Features:**
435
+ - Complete suite of HTTP method test endpoints
436
+ - Server status monitoring
437
+ - Structured response handling
438
+
439
+ ### 11. Usage Module
440
+
441
+ **Import:** `@futdevpro/fsm-dynamo/usage`
442
+
443
+ User behavior tracking and analytics tools.
444
+
445
+ **Key Features:**
446
+ - Session management
447
+ - Usage analytics and geographic insights
448
+ - Daily statistics and action tracking
449
+
450
+ **Example:**
451
+ ```typescript
452
+ import { DyFM_UsageSession } from '@futdevpro/fsm-dynamo/usage';
453
+
454
+ const session = new DyFM_UsageSession({
455
+ userId: 'user-123',
456
+ startTime: new Date(),
457
+ __createdBy: 'system'
458
+ });
459
+ ```
460
+
461
+ ### 12. CI Tools Module
462
+
463
+ **Import:** `@futdevpro/fsm-dynamo/ci-tools`
464
+
465
+ Models and enums for tracking CI/CD pipeline results.
466
+
467
+ **Key Features:**
468
+ - Build, test, and deployment pipeline tracking
469
+ - Detailed step-by-step results
470
+ - Result code enums for standardized status reporting
471
+
472
+ **Example:**
473
+ ```typescript
474
+ import {
475
+ DyFM_CIT_CIResultCode,
476
+ DyFM_CIT_CIResultInfo
477
+ } from '@futdevpro/fsm-dynamo/ci-tools';
478
+
479
+ const ciResult: DyFM_CIT_CIResultInfo = {
480
+ resultCode: DyFM_CIT_CIResultCode.success,
481
+ // ... other properties
482
+ };
483
+ ```
484
+
485
+ ## Common Usage Patterns
486
+
487
+ ### Import Patterns
488
+
489
+ All exports use the `DyFM_` prefix (Dynamo Full Stack Module):
490
+
491
+ ```typescript
492
+ // Main module
493
+ import { DyFM_Array, DyFM_Log, DyFM_Error } from '@futdevpro/fsm-dynamo';
494
+
495
+ // Specific modules
496
+ import { DyFM_DataHandler } from '@futdevpro/fsm-dynamo/data-handler';
497
+ import { DyFM_AI_Provider } from '@futdevpro/fsm-dynamo/ai';
498
+ import { DyFM_Crypto } from '@futdevpro/fsm-dynamo/crypto';
499
+ ```
500
+
501
+ ### Type Safety
502
+
503
+ Dynamo FSM provides full TypeScript support with strict typing:
504
+
505
+ ```typescript
506
+ import { DyFM_Metadata, DyFM_Error, DyFM_ErrorLevel } from '@futdevpro/fsm-dynamo';
507
+
508
+ interface User extends DyFM_Metadata {
509
+ name: string;
510
+ email: string;
511
+ }
512
+
513
+ // Type-safe error handling
514
+ const error = new DyFM_Error({
515
+ errorCode: 'VALIDATION_ERROR',
516
+ message: 'Invalid user data',
517
+ level: DyFM_ErrorLevel.warning
518
+ });
519
+ ```
520
+
521
+ ### Error Handling Pattern
522
+
523
+ ```typescript
524
+ import { DyFM_Error, DyFM_ErrorLevel, DyFM_Log } from '@futdevpro/fsm-dynamo';
525
+
526
+ try {
527
+ // Your code
528
+ } catch (err) {
529
+ if (err instanceof DyFM_Error && err.___handled) {
530
+ // Error already handled
531
+ return;
532
+ }
533
+
534
+ const error = new DyFM_Error({
535
+ errorCode: 'OPERATION_FAILED',
536
+ message: err.message,
537
+ userMessage: 'An error occurred',
538
+ level: DyFM_ErrorLevel.error
539
+ });
540
+
541
+ // Use logSimple for formatted error logging
542
+ error.logSimple('Operation failed');
543
+ // Or use static method
544
+ DyFM_Error.logSimple('Operation failed', error);
545
+
546
+ throw error;
547
+ }
548
+ ```
549
+
550
+ ### Special Logging Methods
551
+
552
+ Dynamo FSM provides specialized logging methods for different use cases:
553
+
554
+ ```typescript
555
+ import { DyFM_Log, DyFM_Error } from '@futdevpro/fsm-dynamo';
556
+
557
+ // Highlighted error - displays error with visual formatting
558
+ DyFM_Log.H_error('Critical error occurred', errorDetails);
559
+ // Alias: DyFM_Log.highlightedError()
560
+
561
+ // Test error - displays error with test-specific formatting
562
+ DyFM_Log.T_error('Test error message', testData);
563
+ // Alias: DyFM_Log.testError()
564
+
565
+ // Simple error logging - formatted error output with error code, message, stack
566
+ const error = new DyFM_Error({
567
+ errorCode: 'VALIDATION_ERROR',
568
+ message: 'Invalid input',
569
+ level: DyFM_ErrorLevel.error
570
+ });
571
+
572
+ // Static method for any error type
573
+ DyFM_Error.logSimple('Operation failed', error);
574
+ // Works with both DyFM_Error instances and regular Error objects
575
+ ```
576
+
577
+ ### Constants Usage
578
+
579
+ ```typescript
580
+ import { DyFM_times, DyFM_data_sizes, DyFM_numbers } from '@futdevpro/fsm-dynamo';
581
+
582
+ // Time constants
583
+ const oneHour = DyFM_times.hour;
584
+ const oneDay = DyFM_times.day;
585
+ const oneWeek = DyFM_times.week;
586
+
587
+ // Data size constants
588
+ const maxStringLength = DyFM_data_sizes.maxStringLength;
589
+
590
+ // Number constants
591
+ const maxSafeInteger = DyFM_numbers.maxSafeInteger;
592
+ ```
593
+
594
+ ## API Reference
595
+
596
+ ### Main Exports
597
+
598
+ The main module exports utilities, constants, enums, and models:
599
+
600
+ **Constants:**
601
+ - `DyFM_error_defaults` - Default error configuration
602
+ - `DyFM_global_settings` - Global framework settings
603
+ - `DyFM_numbers` - Standard numeric constants
604
+ - `DyFM_times` - Time constants (second, minute, hour, day, week, month, year)
605
+ - `DyFM_data_sizes` - Data size constants
606
+
607
+ **Utilities:**
608
+ - `DyFM_Array` - Array manipulation utilities
609
+ - `DyFM_String` - String manipulation utilities
610
+ - `DyFM_Log` - Logging utilities with special methods:
611
+ - `DyFM_Log.H_error` / `DyFM_Log.highlightedError` - Big Highlighted error logging
612
+ - `DyFM_Log.T_error` / `DyFM_Log.testError` - Mdium Highlighted error logging
613
+ - `DyFM_Log.S_error` / `DyFM_Log.smallError` - Small Highlighted error logging
614
+ - `DyFM_Time` - Time manipulation utilities
615
+ - `DyFM_UUID` - UUID generation utilities
616
+ - `DyFM_Data` - Data transformation utilities
617
+ - `DyFM_Math` - Mathematical operations
618
+ - `DyFM_Random` - Random number generation
619
+
620
+ **Enums:**
621
+ - `DyFM_ErrorLevel` - Error severity levels
622
+ - `DyFM_LogStyle` - Text styling options
623
+ - `DyFM_HttpCallType` - HTTP request methods
624
+ - `DyFM_HttpResponseType` - HTTP response data types
625
+ - `DyFM_EnvironmentFlag` - Environment types
626
+
627
+ **Models:**
628
+ - `DyFM_Error` - Error model with methods:
629
+ - `logSimple()` - Formatted error logging with error code, message, stack, and additional content
630
+ - `static logSimple()` - Static method for logging any error type
631
+ - `DyFM_Metadata` - Base metadata model
632
+ - `DyFM_SearchQuery` - Search query interface
633
+ - `DyFM_SearchResult` - Search result interface
634
+ - `DyFM_Paged` - Pagination interface
635
+
636
+ ### Module Export Paths
637
+
638
+ All modules can be imported directly:
639
+
640
+ ```typescript
641
+ // Main module
642
+ import { ... } from '@futdevpro/fsm-dynamo';
643
+
644
+ // Submodules
645
+ import { ... } from '@futdevpro/fsm-dynamo/ai';
646
+ import { ... } from '@futdevpro/fsm-dynamo/ai/open-ai';
647
+ import { ... } from '@futdevpro/fsm-dynamo/ai/anthropic';
648
+ import { ... } from '@futdevpro/fsm-dynamo/data-handler';
649
+ import { ... } from '@futdevpro/fsm-dynamo/location';
650
+ import { ... } from '@futdevpro/fsm-dynamo/messaging';
651
+ import { ... } from '@futdevpro/fsm-dynamo/socket';
652
+ import { ... } from '@futdevpro/fsm-dynamo/pipe';
653
+ import { ... } from '@futdevpro/fsm-dynamo/crypto';
654
+ import { ... } from '@futdevpro/fsm-dynamo/custom-data';
655
+ import { ... } from '@futdevpro/fsm-dynamo/test';
656
+ import { ... } from '@futdevpro/fsm-dynamo/usage';
657
+ import { ... } from '@futdevpro/fsm-dynamo/ci-tools';
658
+ ```
659
+
660
+ For detailed API documentation, refer to the [Dynamo FSM Documentation](https://futdevpro.hu/projects/dynamo).
661
+
662
+ ## Requirements
663
+
664
+ - **TypeScript**: 5.5.4 or higher
665
+ - **Node.js**: Compatible with Node.js LTS versions
666
+ - **Peer Dependencies**:
667
+ - `rxjs`: 7.8.1
668
+
669
+ ## Support & Contributing
670
+
671
+ ### Support
672
+
673
+ - **Donations**: [https://futdevpro.hu/support/dynamo](https://futdevpro.hu/support/dynamo) - Support page for project donations
674
+ - **Homepage**: [https://futdevpro.hu/projects/dynamo](https://futdevpro.hu/projects/dynamo)
675
+ - **Feedback & Contact**: For feature requests, bug reports, or questions, please use the feedback page or contact us at:
676
+ - contact@futdevpro.hu
677
+ - support@futdevpro.hu
678
+
679
+ ## License
680
+
681
+ MIT License
682
+
683
+ Copyright (c) Future Development Program Ltd. (HU)
684
+
685
+ Permission is hereby granted, free of charge, to any person obtaining a copy
686
+ of this software and associated documentation files (the "Software"), to deal
687
+ in the Software without restriction, including without limitation the rights
688
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
689
+ copies of the Software, and to permit persons to whom the Software is
690
+ furnished to do so, subject to the following conditions:
691
+
692
+ The above copyright notice and this permission notice shall be included in all
693
+ copies or substantial portions of the Software.
694
+
695
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
696
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
697
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
698
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
699
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
700
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
701
+ SOFTWARE.