@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
@@ -1,481 +1,481 @@
1
-
2
- import { day, hour, minute, month, second, week, year } from '../constants/times.const';
3
- import { DyFM_Month } from '../../_enums/time/month.enum';
4
- import { DyFM_DayOfWeek } from '../../_enums/time/day-of-week.enum';
5
- import { DyFM_RelativeDate } from '../../_enums/time/relative-date.enum';
6
- import { DyFM_Math } from './math/math.util';
7
-
8
- /* export type DyFM_T = DyFM_Time; */
9
- /**
10
- * Time utility class
11
- */
12
- export class DyFM_Time {
13
-
14
- /**
15
- * The number of milliseconds in a second
16
- */
17
- static readonly second = second;
18
-
19
- /**
20
- * The number of milliseconds in a minute
21
- */
22
- static readonly minute = minute;
23
-
24
- /**
25
- * The number of milliseconds in an hour
26
- */
27
- static readonly hour = hour;
28
-
29
- /**
30
- * The number of milliseconds in a day
31
- */
32
- static readonly day = day;
33
-
34
- /**
35
- * The number of milliseconds in a week
36
- */
37
- static readonly week = week;
38
-
39
- /**
40
- * The number of milliseconds in a month
41
- */
42
- static readonly month = month;
43
-
44
- /**
45
- * The number of milliseconds in a year
46
- */
47
- static readonly year = year;
48
-
49
- /**
50
- * Get the age of a person
51
- * @param birthDate - The birth date of the person
52
- * @returns The age of the person
53
- *
54
- * @example
55
- * ```ts
56
- * const birthDate = new Date('1990-01-01');
57
- * const age = DyFM_Time.getAge(birthDate);
58
- * console.log(age); // 31
59
- * ```
60
- */
61
- static getAge(birthDate: Date | number | string): number {
62
- return this.getYear(+new Date() - +new Date(birthDate));
63
- }
64
-
65
- /**
66
- * returns the date as a number of years
67
- * @param date
68
- * @returns
69
- *
70
- * @example
71
- * ```ts
72
- * const date = new Date('2025-01-01');
73
- * const year = DyFM_Time.getYear(date);
74
- * console.log(year); // 2025
75
- * ```
76
- */
77
- static getYear(date: Date | number | string): number {
78
- if (typeof date === 'string') {
79
- date = new Date(date);
80
- }
81
-
82
- return (+date / year);
83
- }
84
-
85
- /**
86
- * returns the date as a number of hours
87
- * @param date
88
- * @returns
89
- *
90
- * @example
91
- * ```ts
92
- * const date = new Date('2025-01-01');
93
- * const hour = DyFM_Time.getHour(date);
94
- * console.log(hour); // 1
95
- * ```
96
- */
97
- static getHour(date: Date | number | string): number {
98
- if (typeof date === 'string') {
99
- date = new Date(date);
100
- }
101
-
102
- return (+date / hour);
103
- }
104
-
105
- /**
106
- * calculates the birthdate from the age
107
- * (with current date so this wont be accurate for days or months, only years)
108
- * @param date
109
- * @returns
110
- *
111
- * @example
112
- * ```ts
113
- * const age = 31;
114
- * const date = DyFM_Time.getDateByAge(age);
115
- * console.log(date); // 1990-01-01
116
- * ```
117
- */
118
- static getDateByAge(age: number): Date {
119
- return new Date(+new Date() - (year * age));
120
- }
121
-
122
- /**
123
- * returns the date x before the current date
124
- * @param relativeDate
125
- * @returns
126
- *
127
- * @example
128
- * ```ts
129
- * const date = DyFM_Time.getDateByRelativeDate(DyFM_RelativeDate.lastDay);
130
- * ```
131
- */
132
- static getDateByRelativeDate(
133
- relativeDate: DyFM_RelativeDate,
134
- comparedTo?: Date
135
- ): Date {
136
- switch (relativeDate) {
137
- case DyFM_RelativeDate.lastDay:
138
- return this.oneDayAgo(comparedTo);
139
-
140
- case DyFM_RelativeDate.lastWeek:
141
- return this.oneWeekAgo(comparedTo);
142
-
143
- case DyFM_RelativeDate.lastMonth:
144
- return this.oneMonthAgo(comparedTo);
145
-
146
- case DyFM_RelativeDate.lastYear:
147
- return this.oneYearAgo(comparedTo);
148
-
149
- case DyFM_RelativeDate.last10Years:
150
- return this.tenYearsAgo(comparedTo);
151
-
152
- case DyFM_RelativeDate.allTime:
153
- return new Date(0);
154
-
155
- default:
156
- return new Date(0);
157
- }
158
- }
159
-
160
- /**
161
- * returns the date one hour ago
162
- * @returns
163
- *
164
- * @example
165
- * ```ts
166
- * const comparedTo = new Date('2025-01-01');
167
- * const date = DyFM_Time.oneHourAgo(comparedTo);
168
- * console.log(date); // 2024-12-31 23:00:00
169
- * ```
170
- */
171
- static oneHourAgo(comparedTo: Date = new Date()): Date {
172
- return new Date(+comparedTo - hour);
173
- }
174
-
175
- /**
176
- * returns the date one day ago
177
- * @returns
178
- *
179
- * @example
180
- * ```ts
181
- * const comparedTo = new Date('2025-01-01');
182
- * const date = DyFM_Time.oneDayAgo(comparedTo);
183
- * console.log(date); // 2024-12-31
184
- * ```
185
- */
186
- static oneDayAgo(comparedTo: Date = new Date()): Date {
187
- return new Date(+comparedTo - day);
188
- }
189
-
190
- /**
191
- * returns the date one week ago
192
- * @returns
193
- *
194
- * @example
195
- * ```ts
196
- * const comparedTo = new Date('2025-01-01');
197
- * const date = DyFM_Time.oneWeekAgo(comparedTo);
198
- * console.log(date); // 2024-12-25
199
- * ```
200
- */
201
- static oneWeekAgo(comparedTo: Date = new Date()): Date {
202
- return new Date(+comparedTo - week);
203
- }
204
-
205
- /**
206
- * returns the date one month ago
207
- * @returns
208
- *
209
- * @example
210
- * ```ts
211
- * const comparedTo = new Date('2025-01-01');
212
- * const date = DyFM_Time.oneMonthAgo(comparedTo);
213
- * console.log(date); // 2024-12-01
214
- * ```
215
- */
216
- static oneMonthAgo(comparedTo: Date = new Date()): Date {
217
- return new Date(+comparedTo - month);
218
- }
219
-
220
- /**
221
- * returns the date one year ago
222
- * @returns
223
- *
224
- * @example
225
- * ```ts
226
- * const comparedTo = new Date('2025-01-01');
227
- * const date = DyFM_Time.oneYearAgo(comparedTo);
228
- * console.log(date); // 2024-01-01
229
- * ```
230
- */
231
- static oneYearAgo(comparedTo: Date = new Date()): Date {
232
- return new Date(+comparedTo - year);
233
- }
234
-
235
- /**
236
- * returns the date ten years ago
237
- * @returns
238
- *
239
- * @example
240
- * ```ts
241
- * const comparedTo = new Date('2025-01-01');
242
- * const date = DyFM_Time.tenYearsAgo(comparedTo);
243
- * console.log(date); // 2015-01-01
244
- * ```
245
- */
246
- static tenYearsAgo(comparedTo: Date = new Date()): Date {
247
- return new Date(+comparedTo - (10 * year));
248
- }
249
-
250
- /**
251
- * returns the DyFM_DayOfWeek type of the current day
252
- * @returns
253
- *
254
- * @example
255
- * ```ts
256
- * const today = DyFM_Time.getTodayOfWeek();
257
- * console.log(today); // DyFM_DayOfWeek.monday
258
- * ```
259
- */
260
- static getTodayOfWeek(): DyFM_DayOfWeek {
261
- return DyFM_DayOfWeek[
262
- new Date().toLocaleString('en-us', { weekday: 'long' }).toLocaleLowerCase() as keyof typeof DyFM_DayOfWeek
263
- ];
264
- }
265
-
266
- /**
267
- * returns the days of the week from today to the end of the week in DyFM_DayOfWeek format
268
- * @returns
269
- *
270
- * @example
271
- * ```ts
272
- * const daysOfWeek = DyFM_Time.getDaysOfWeekFromToday();
273
- * console.log(daysOfWeek); // [ DyFM_DayOfWeek.monday, DyFM_DayOfWeek.tuesday, DyFM_DayOfWeek.wednesday, DyFM_DayOfWeek.thursday, DyFM_DayOfWeek.friday, DyFM_DayOfWeek.saturday, DyFM_DayOfWeek.sunday ]
274
- * ```
275
- */
276
- static getDaysOfWeekFromToday(): DyFM_DayOfWeek[] {
277
- const today: DyFM_DayOfWeek = this.getTodayOfWeek();
278
- const daysOfWeek: DyFM_DayOfWeek[] = Object.values(DyFM_DayOfWeek);
279
- const todayIndex: number = daysOfWeek.indexOf(today);
280
-
281
- return daysOfWeek.slice(todayIndex).concat(daysOfWeek.slice(0, todayIndex));
282
- }
283
-
284
- /**
285
- * returns the days of the week to today to the end of the week in DyFM_DayOfWeek format
286
- * @returns
287
- *
288
- * @example
289
- * ```ts
290
- * const daysOfWeek = DyFM_Time.getDaysOfWeekToToday();
291
- * console.log(daysOfWeek); // [ DyFM_DayOfWeek.sunday, DyFM_DayOfWeek.saturday, DyFM_DayOfWeek.friday, DyFM_DayOfWeek.thursday, DyFM_DayOfWeek.wednesday, DyFM_DayOfWeek.tuesday, DyFM_DayOfWeek.monday ]
292
- * ```
293
- */
294
- static getDaysOfWeekToToday(): DyFM_DayOfWeek[] {
295
- const today: DyFM_DayOfWeek = this.getTodayOfWeek();
296
- const daysOfWeek: DyFM_DayOfWeek[] = Object.values(DyFM_DayOfWeek);
297
- const todayIndex: number = daysOfWeek.indexOf(today);
298
-
299
- return daysOfWeek.slice(0, todayIndex).reverse().concat(daysOfWeek.slice(todayIndex).reverse());
300
- }
301
-
302
- /**
303
- * returns the DyFM_Month type of the current month
304
- * @returns
305
- *
306
- * @example
307
- * ```ts
308
- * const month = DyFM_Time.getCurrentMonth();
309
- * console.log(month); // DyFM_Month.january
310
- * ```
311
- */
312
- static getCurrentMonth(): DyFM_Month {
313
- return DyFM_Month[
314
- new Date().toLocaleString('en-us', { month: 'long' }).toLocaleLowerCase() as keyof typeof DyFM_Month
315
- ];
316
- }
317
-
318
- /**
319
- * returns the number of days in the month
320
- * @param inYear this value is important for february if you want to know if it is a leap year
321
- * @returns
322
- *
323
- * @example
324
- * ```ts
325
- * const monthLength = DyFM_Time.getMonthLength(DyFM_Month.january);
326
- * console.log(monthLength); // 31
327
- * ```
328
- */
329
- static getMonthLength(month: DyFM_Month, inYear?: number): number {
330
- switch (month) {
331
- case DyFM_Month.january:
332
- case DyFM_Month.march:
333
- case DyFM_Month.may:
334
- case DyFM_Month.june:
335
- case DyFM_Month.august:
336
- case DyFM_Month.october:
337
- return 31;
338
-
339
- case DyFM_Month.april:
340
- case DyFM_Month.july:
341
- case DyFM_Month.september:
342
- case DyFM_Month.november:
343
- case DyFM_Month.december:
344
- return 30;
345
-
346
- case DyFM_Month.february:
347
- return this.isLeapYear(inYear ?? new Date().getFullYear()) ? 29 : 28;
348
- }
349
- }
350
-
351
- /**
352
- * returns year is leap or not
353
- * @param year
354
- * @returns
355
- *
356
- * @example
357
- * ```ts
358
- * const isLeapYear = DyFM_Time.isLeapYear(2024);
359
- * console.log(isLeapYear); // true
360
- * ```
361
- */
362
- static isLeapYear(year: number): boolean {
363
- return year % 4 === 0;
364
- }
365
-
366
- /**
367
- * returns the duration string
368
- * @param duration
369
- * @param full
370
- * @returns
371
- *
372
- * @example
373
- * ```ts
374
- * const duration = 1000;
375
- * const durationString = DyFM_Time.getDurationString(duration);
376
- * console.log(durationString); // 1s
377
- * ```
378
- */
379
- static getDurationString(duration: number, full?: boolean): string {
380
- // Ha 0ms az idő, akkor rögtön visszaadjuk
381
- if (duration === 0) {
382
- return '0ms';
383
- }
384
-
385
- if (!duration) {
386
- return 'N/A';
387
- }
388
-
389
- // Nagyon rövid idő: < 100ms → ms-ben mutatjuk
390
- if (duration < (second / 10)) {
391
- return `${duration}ms`;
392
- }
393
-
394
- // < 1s → másodperc két tizedesjeggyel (jobb olvashatóság)
395
- if (duration < second) {
396
- return `${DyFM_Math.round(duration / second, 2)}s`;
397
- }
398
-
399
- // < 1m → csak másodperc (és opcionálisan ms, ha full=true)
400
- if (duration < minute) {
401
- const secondsWhole: number = DyFM_Math.round(duration / second, 0);
402
- if (full) {
403
- const remainingMs: number = duration % second;
404
- return `${secondsWhole}s ${remainingMs}ms`;
405
- }
406
- return `${secondsWhole}s`;
407
- }
408
-
409
- // < 1h → perc + másodperc (helyes egység-átváltással)
410
- if (duration < hour) {
411
- const minutesWhole: number = DyFM_Math.round(duration / minute, 0);
412
- const remainingSeconds: number = DyFM_Math.round((duration % minute) / second, 0);
413
- return `${minutesWhole}m ${remainingSeconds}s`;
414
- }
415
-
416
- // < 1d → óra + perc
417
- if (duration < day) {
418
- const hoursWhole: number = DyFM_Math.round(duration / hour, 0);
419
- const remainingMinutes: number = DyFM_Math.round((duration % hour) / minute, 0);
420
- return `${hoursWhole}h ${remainingMinutes}m`;
421
- }
422
-
423
- // < 1w → nap + óra
424
- if (duration < week) {
425
- const daysWhole: number = DyFM_Math.round(duration / day, 0);
426
- const remainingHours: number = DyFM_Math.round((duration % day) / hour, 0);
427
- return `${daysWhole}d ${remainingHours}h`;
428
- }
429
-
430
- // < 1 month → hét + nap
431
- if (duration < month) {
432
- const weeksWhole: number = DyFM_Math.round(duration / week, 0);
433
- const remainingDays: number = DyFM_Math.round((duration % week) / day, 0);
434
- return `${weeksWhole}w ${remainingDays}d`;
435
- }
436
-
437
- // < 1y → month + hét
438
- if (duration < year) {
439
- const monthsWhole: number = DyFM_Math.round(duration / month, 0);
440
- const remainingWeeks: number = DyFM_Math.round((duration % month) / week, 0);
441
- return `${monthsWhole}m ${remainingWeeks}w`;
442
- }
443
-
444
- // ≥ 1y → év + hónap
445
- const yearsWhole: number = DyFM_Math.round(duration / year, 0);
446
- const remainingMonths: number = DyFM_Math.round((duration % year) / month, 0);
447
- return `${yearsWhole}y ${remainingMonths}m`;
448
- }
449
-
450
- /**
451
- * returns the time in the shortest string
452
- * @param time
453
- * @returns
454
- *
455
- * @example
456
- * ```ts
457
- * const time = 345;
458
- * const timeString = DyFM_Time.getTimeInShortestString(time);
459
- * console.log(timeString); // 345ms
460
- * ```
461
- */
462
- static getTimeInShortestString(time: number): string {
463
- if (time % year === 0) {
464
- return `${time / year}y`;
465
- } else if (time % month === 0) {
466
- return `${time / month}m`;
467
- } else if (time % week === 0) {
468
- return `${time / week}w`;
469
- } else if (time % day === 0) {
470
- return `${time / day}d`;
471
- } else if (time % hour === 0) {
472
- return `${time / hour}h`;
473
- } else if (time % minute === 0) {
474
- return `${time / minute}m`;
475
- } else if (time % second === 0) {
476
- return `${time / second}s`;
477
- } else {
478
- return `${time}ms`;
479
- }
480
- }
481
- }
1
+
2
+ import { day, hour, minute, month, second, week, year } from '../constants/times.const';
3
+ import { DyFM_Month } from '../../_enums/time/month.enum';
4
+ import { DyFM_DayOfWeek } from '../../_enums/time/day-of-week.enum';
5
+ import { DyFM_RelativeDate } from '../../_enums/time/relative-date.enum';
6
+ import { DyFM_Math } from './math/math.util';
7
+
8
+ /* export type DyFM_T = DyFM_Time; */
9
+ /**
10
+ * Time utility class
11
+ */
12
+ export class DyFM_Time {
13
+
14
+ /**
15
+ * The number of milliseconds in a second
16
+ */
17
+ static readonly second = second;
18
+
19
+ /**
20
+ * The number of milliseconds in a minute
21
+ */
22
+ static readonly minute = minute;
23
+
24
+ /**
25
+ * The number of milliseconds in an hour
26
+ */
27
+ static readonly hour = hour;
28
+
29
+ /**
30
+ * The number of milliseconds in a day
31
+ */
32
+ static readonly day = day;
33
+
34
+ /**
35
+ * The number of milliseconds in a week
36
+ */
37
+ static readonly week = week;
38
+
39
+ /**
40
+ * The number of milliseconds in a month
41
+ */
42
+ static readonly month = month;
43
+
44
+ /**
45
+ * The number of milliseconds in a year
46
+ */
47
+ static readonly year = year;
48
+
49
+ /**
50
+ * Get the age of a person
51
+ * @param birthDate - The birth date of the person
52
+ * @returns The age of the person
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * const birthDate = new Date('1990-01-01');
57
+ * const age = DyFM_Time.getAge(birthDate);
58
+ * console.log(age); // 31
59
+ * ```
60
+ */
61
+ static getAge(birthDate: Date | number | string): number {
62
+ return this.getYear(+new Date() - +new Date(birthDate));
63
+ }
64
+
65
+ /**
66
+ * returns the date as a number of years
67
+ * @param date
68
+ * @returns
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * const date = new Date('2025-01-01');
73
+ * const year = DyFM_Time.getYear(date);
74
+ * console.log(year); // 2025
75
+ * ```
76
+ */
77
+ static getYear(date: Date | number | string): number {
78
+ if (typeof date === 'string') {
79
+ date = new Date(date);
80
+ }
81
+
82
+ return (+date / year);
83
+ }
84
+
85
+ /**
86
+ * returns the date as a number of hours
87
+ * @param date
88
+ * @returns
89
+ *
90
+ * @example
91
+ * ```ts
92
+ * const date = new Date('2025-01-01');
93
+ * const hour = DyFM_Time.getHour(date);
94
+ * console.log(hour); // 1
95
+ * ```
96
+ */
97
+ static getHour(date: Date | number | string): number {
98
+ if (typeof date === 'string') {
99
+ date = new Date(date);
100
+ }
101
+
102
+ return (+date / hour);
103
+ }
104
+
105
+ /**
106
+ * calculates the birthdate from the age
107
+ * (with current date so this wont be accurate for days or months, only years)
108
+ * @param date
109
+ * @returns
110
+ *
111
+ * @example
112
+ * ```ts
113
+ * const age = 31;
114
+ * const date = DyFM_Time.getDateByAge(age);
115
+ * console.log(date); // 1990-01-01
116
+ * ```
117
+ */
118
+ static getDateByAge(age: number): Date {
119
+ return new Date(+new Date() - (year * age));
120
+ }
121
+
122
+ /**
123
+ * returns the date x before the current date
124
+ * @param relativeDate
125
+ * @returns
126
+ *
127
+ * @example
128
+ * ```ts
129
+ * const date = DyFM_Time.getDateByRelativeDate(DyFM_RelativeDate.lastDay);
130
+ * ```
131
+ */
132
+ static getDateByRelativeDate(
133
+ relativeDate: DyFM_RelativeDate,
134
+ comparedTo?: Date
135
+ ): Date {
136
+ switch (relativeDate) {
137
+ case DyFM_RelativeDate.lastDay:
138
+ return this.oneDayAgo(comparedTo);
139
+
140
+ case DyFM_RelativeDate.lastWeek:
141
+ return this.oneWeekAgo(comparedTo);
142
+
143
+ case DyFM_RelativeDate.lastMonth:
144
+ return this.oneMonthAgo(comparedTo);
145
+
146
+ case DyFM_RelativeDate.lastYear:
147
+ return this.oneYearAgo(comparedTo);
148
+
149
+ case DyFM_RelativeDate.last10Years:
150
+ return this.tenYearsAgo(comparedTo);
151
+
152
+ case DyFM_RelativeDate.allTime:
153
+ return new Date(0);
154
+
155
+ default:
156
+ return new Date(0);
157
+ }
158
+ }
159
+
160
+ /**
161
+ * returns the date one hour ago
162
+ * @returns
163
+ *
164
+ * @example
165
+ * ```ts
166
+ * const comparedTo = new Date('2025-01-01');
167
+ * const date = DyFM_Time.oneHourAgo(comparedTo);
168
+ * console.log(date); // 2024-12-31 23:00:00
169
+ * ```
170
+ */
171
+ static oneHourAgo(comparedTo: Date = new Date()): Date {
172
+ return new Date(+comparedTo - hour);
173
+ }
174
+
175
+ /**
176
+ * returns the date one day ago
177
+ * @returns
178
+ *
179
+ * @example
180
+ * ```ts
181
+ * const comparedTo = new Date('2025-01-01');
182
+ * const date = DyFM_Time.oneDayAgo(comparedTo);
183
+ * console.log(date); // 2024-12-31
184
+ * ```
185
+ */
186
+ static oneDayAgo(comparedTo: Date = new Date()): Date {
187
+ return new Date(+comparedTo - day);
188
+ }
189
+
190
+ /**
191
+ * returns the date one week ago
192
+ * @returns
193
+ *
194
+ * @example
195
+ * ```ts
196
+ * const comparedTo = new Date('2025-01-01');
197
+ * const date = DyFM_Time.oneWeekAgo(comparedTo);
198
+ * console.log(date); // 2024-12-25
199
+ * ```
200
+ */
201
+ static oneWeekAgo(comparedTo: Date = new Date()): Date {
202
+ return new Date(+comparedTo - week);
203
+ }
204
+
205
+ /**
206
+ * returns the date one month ago
207
+ * @returns
208
+ *
209
+ * @example
210
+ * ```ts
211
+ * const comparedTo = new Date('2025-01-01');
212
+ * const date = DyFM_Time.oneMonthAgo(comparedTo);
213
+ * console.log(date); // 2024-12-01
214
+ * ```
215
+ */
216
+ static oneMonthAgo(comparedTo: Date = new Date()): Date {
217
+ return new Date(+comparedTo - month);
218
+ }
219
+
220
+ /**
221
+ * returns the date one year ago
222
+ * @returns
223
+ *
224
+ * @example
225
+ * ```ts
226
+ * const comparedTo = new Date('2025-01-01');
227
+ * const date = DyFM_Time.oneYearAgo(comparedTo);
228
+ * console.log(date); // 2024-01-01
229
+ * ```
230
+ */
231
+ static oneYearAgo(comparedTo: Date = new Date()): Date {
232
+ return new Date(+comparedTo - year);
233
+ }
234
+
235
+ /**
236
+ * returns the date ten years ago
237
+ * @returns
238
+ *
239
+ * @example
240
+ * ```ts
241
+ * const comparedTo = new Date('2025-01-01');
242
+ * const date = DyFM_Time.tenYearsAgo(comparedTo);
243
+ * console.log(date); // 2015-01-01
244
+ * ```
245
+ */
246
+ static tenYearsAgo(comparedTo: Date = new Date()): Date {
247
+ return new Date(+comparedTo - (10 * year));
248
+ }
249
+
250
+ /**
251
+ * returns the DyFM_DayOfWeek type of the current day
252
+ * @returns
253
+ *
254
+ * @example
255
+ * ```ts
256
+ * const today = DyFM_Time.getTodayOfWeek();
257
+ * console.log(today); // DyFM_DayOfWeek.monday
258
+ * ```
259
+ */
260
+ static getTodayOfWeek(): DyFM_DayOfWeek {
261
+ return DyFM_DayOfWeek[
262
+ new Date().toLocaleString('en-us', { weekday: 'long' }).toLocaleLowerCase() as keyof typeof DyFM_DayOfWeek
263
+ ];
264
+ }
265
+
266
+ /**
267
+ * returns the days of the week from today to the end of the week in DyFM_DayOfWeek format
268
+ * @returns
269
+ *
270
+ * @example
271
+ * ```ts
272
+ * const daysOfWeek = DyFM_Time.getDaysOfWeekFromToday();
273
+ * console.log(daysOfWeek); // [ DyFM_DayOfWeek.monday, DyFM_DayOfWeek.tuesday, DyFM_DayOfWeek.wednesday, DyFM_DayOfWeek.thursday, DyFM_DayOfWeek.friday, DyFM_DayOfWeek.saturday, DyFM_DayOfWeek.sunday ]
274
+ * ```
275
+ */
276
+ static getDaysOfWeekFromToday(): DyFM_DayOfWeek[] {
277
+ const today: DyFM_DayOfWeek = this.getTodayOfWeek();
278
+ const daysOfWeek: DyFM_DayOfWeek[] = Object.values(DyFM_DayOfWeek);
279
+ const todayIndex: number = daysOfWeek.indexOf(today);
280
+
281
+ return daysOfWeek.slice(todayIndex).concat(daysOfWeek.slice(0, todayIndex));
282
+ }
283
+
284
+ /**
285
+ * returns the days of the week to today to the end of the week in DyFM_DayOfWeek format
286
+ * @returns
287
+ *
288
+ * @example
289
+ * ```ts
290
+ * const daysOfWeek = DyFM_Time.getDaysOfWeekToToday();
291
+ * console.log(daysOfWeek); // [ DyFM_DayOfWeek.sunday, DyFM_DayOfWeek.saturday, DyFM_DayOfWeek.friday, DyFM_DayOfWeek.thursday, DyFM_DayOfWeek.wednesday, DyFM_DayOfWeek.tuesday, DyFM_DayOfWeek.monday ]
292
+ * ```
293
+ */
294
+ static getDaysOfWeekToToday(): DyFM_DayOfWeek[] {
295
+ const today: DyFM_DayOfWeek = this.getTodayOfWeek();
296
+ const daysOfWeek: DyFM_DayOfWeek[] = Object.values(DyFM_DayOfWeek);
297
+ const todayIndex: number = daysOfWeek.indexOf(today);
298
+
299
+ return daysOfWeek.slice(0, todayIndex).reverse().concat(daysOfWeek.slice(todayIndex).reverse());
300
+ }
301
+
302
+ /**
303
+ * returns the DyFM_Month type of the current month
304
+ * @returns
305
+ *
306
+ * @example
307
+ * ```ts
308
+ * const month = DyFM_Time.getCurrentMonth();
309
+ * console.log(month); // DyFM_Month.january
310
+ * ```
311
+ */
312
+ static getCurrentMonth(): DyFM_Month {
313
+ return DyFM_Month[
314
+ new Date().toLocaleString('en-us', { month: 'long' }).toLocaleLowerCase() as keyof typeof DyFM_Month
315
+ ];
316
+ }
317
+
318
+ /**
319
+ * returns the number of days in the month
320
+ * @param inYear this value is important for february if you want to know if it is a leap year
321
+ * @returns
322
+ *
323
+ * @example
324
+ * ```ts
325
+ * const monthLength = DyFM_Time.getMonthLength(DyFM_Month.january);
326
+ * console.log(monthLength); // 31
327
+ * ```
328
+ */
329
+ static getMonthLength(month: DyFM_Month, inYear?: number): number {
330
+ switch (month) {
331
+ case DyFM_Month.january:
332
+ case DyFM_Month.march:
333
+ case DyFM_Month.may:
334
+ case DyFM_Month.june:
335
+ case DyFM_Month.august:
336
+ case DyFM_Month.october:
337
+ return 31;
338
+
339
+ case DyFM_Month.april:
340
+ case DyFM_Month.july:
341
+ case DyFM_Month.september:
342
+ case DyFM_Month.november:
343
+ case DyFM_Month.december:
344
+ return 30;
345
+
346
+ case DyFM_Month.february:
347
+ return this.isLeapYear(inYear ?? new Date().getFullYear()) ? 29 : 28;
348
+ }
349
+ }
350
+
351
+ /**
352
+ * returns year is leap or not
353
+ * @param year
354
+ * @returns
355
+ *
356
+ * @example
357
+ * ```ts
358
+ * const isLeapYear = DyFM_Time.isLeapYear(2024);
359
+ * console.log(isLeapYear); // true
360
+ * ```
361
+ */
362
+ static isLeapYear(year: number): boolean {
363
+ return year % 4 === 0;
364
+ }
365
+
366
+ /**
367
+ * returns the duration string
368
+ * @param duration
369
+ * @param full
370
+ * @returns
371
+ *
372
+ * @example
373
+ * ```ts
374
+ * const duration = 1000;
375
+ * const durationString = DyFM_Time.getDurationString(duration);
376
+ * console.log(durationString); // 1s
377
+ * ```
378
+ */
379
+ static getDurationString(duration: number, full?: boolean): string {
380
+ // Ha 0ms az idő, akkor rögtön visszaadjuk
381
+ if (duration === 0) {
382
+ return '0ms';
383
+ }
384
+
385
+ if (!duration) {
386
+ return 'N/A';
387
+ }
388
+
389
+ // Nagyon rövid idő: < 100ms → ms-ben mutatjuk
390
+ if (duration < (second / 10)) {
391
+ return `${duration}ms`;
392
+ }
393
+
394
+ // < 1s → másodperc két tizedesjeggyel (jobb olvashatóság)
395
+ if (duration < second) {
396
+ return `${DyFM_Math.round(duration / second, 2)}s`;
397
+ }
398
+
399
+ // < 1m → csak másodperc (és opcionálisan ms, ha full=true)
400
+ if (duration < minute) {
401
+ const secondsWhole: number = DyFM_Math.round(duration / second, 0);
402
+ if (full) {
403
+ const remainingMs: number = duration % second;
404
+ return `${secondsWhole}s ${remainingMs}ms`;
405
+ }
406
+ return `${secondsWhole}s`;
407
+ }
408
+
409
+ // < 1h → perc + másodperc (helyes egység-átváltással)
410
+ if (duration < hour) {
411
+ const minutesWhole: number = DyFM_Math.round(duration / minute, 0);
412
+ const remainingSeconds: number = DyFM_Math.round((duration % minute) / second, 0);
413
+ return `${minutesWhole}m ${remainingSeconds}s`;
414
+ }
415
+
416
+ // < 1d → óra + perc
417
+ if (duration < day) {
418
+ const hoursWhole: number = DyFM_Math.round(duration / hour, 0);
419
+ const remainingMinutes: number = DyFM_Math.round((duration % hour) / minute, 0);
420
+ return `${hoursWhole}h ${remainingMinutes}m`;
421
+ }
422
+
423
+ // < 1w → nap + óra
424
+ if (duration < week) {
425
+ const daysWhole: number = DyFM_Math.round(duration / day, 0);
426
+ const remainingHours: number = DyFM_Math.round((duration % day) / hour, 0);
427
+ return `${daysWhole}d ${remainingHours}h`;
428
+ }
429
+
430
+ // < 1 month → hét + nap
431
+ if (duration < month) {
432
+ const weeksWhole: number = DyFM_Math.round(duration / week, 0);
433
+ const remainingDays: number = DyFM_Math.round((duration % week) / day, 0);
434
+ return `${weeksWhole}w ${remainingDays}d`;
435
+ }
436
+
437
+ // < 1y → month + hét
438
+ if (duration < year) {
439
+ const monthsWhole: number = DyFM_Math.round(duration / month, 0);
440
+ const remainingWeeks: number = DyFM_Math.round((duration % month) / week, 0);
441
+ return `${monthsWhole}m ${remainingWeeks}w`;
442
+ }
443
+
444
+ // ≥ 1y → év + hónap
445
+ const yearsWhole: number = DyFM_Math.round(duration / year, 0);
446
+ const remainingMonths: number = DyFM_Math.round((duration % year) / month, 0);
447
+ return `${yearsWhole}y ${remainingMonths}m`;
448
+ }
449
+
450
+ /**
451
+ * returns the time in the shortest string
452
+ * @param time
453
+ * @returns
454
+ *
455
+ * @example
456
+ * ```ts
457
+ * const time = 345;
458
+ * const timeString = DyFM_Time.getTimeInShortestString(time);
459
+ * console.log(timeString); // 345ms
460
+ * ```
461
+ */
462
+ static getTimeInShortestString(time: number): string {
463
+ if (time % year === 0) {
464
+ return `${time / year}y`;
465
+ } else if (time % month === 0) {
466
+ return `${time / month}m`;
467
+ } else if (time % week === 0) {
468
+ return `${time / week}w`;
469
+ } else if (time % day === 0) {
470
+ return `${time / day}d`;
471
+ } else if (time % hour === 0) {
472
+ return `${time / hour}h`;
473
+ } else if (time % minute === 0) {
474
+ return `${time / minute}m`;
475
+ } else if (time % second === 0) {
476
+ return `${time / second}s`;
477
+ } else {
478
+ return `${time}ms`;
479
+ }
480
+ }
481
+ }